function addLocaleInfo(){
	var currentLocale=null;
	if(document.getElementById("applicationSettings") != null ){
		currentLocale = document.getElementById("applicationSettings").lang.value;
	}
	if(currentLocale==null){
	    //alert("Null Pointer Exception");
		currentLocale="en";
	}
	var url = ''+window.location;
	var temp = 'lang=';
	var langparam='';
	if(url.indexOf(temp)==-1){
		if(url.indexOf('?')==-1){
			url=url+'?lang='+currentLocale;
			langparam='?lang='+currentLocale;
		}else{
			url=url+'&lang='+currentLocale;
			langparam='&lang='+currentLocale;
		}
		window.location.hash=langparam;
		//window.location=langparam;
	}
}

function submitEnter(myfield,e)
{
	
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
    if (keycode == 13)
    {
     myfield.form.submit();
     //submitLoginForm();
     return false;
    }
    else
     return true;
}
function submitEnterFunction(myfield,e,submitFormMethod)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
    if (keycode == 13)
    {
     	submitFormMethod();
     	return false;
    }
    else
     return true;
}
function openExternalLink(link){
	
	var win=window.open(link);
}

///////////////////////////////////////////////////
function getQueryString(formId){
	var str = '';
	var formElements = document.getElementById(formId).elements;
	for(var i = 0; i < formElements.length; i++)
	{
		str += formElements[i].name + "="+ formElements[i].value;
		if(i!=formElements.length-1){
			str +="&";
		}
	}
	return str; 
}
///////////////////////////////////////////////////
function getParams(formId){
	var str = '';
	var formElements = document.getElementById(formId).elements;
	for(var i = 0; i < formElements.length; i++)
	{
		str += formElements[i].name + ":"+ formElements[i].value;
		if(i!=formElements.length-1){
			str +=",";
		}
	}
	return str; 
}
///////////////////////////////////////////////////
function parseBoolean(value){
	if(value!=null&&value!=undefined){
		value=value.trim();
		if(value=='TRUE'||value=='true'){
			return true;
		}
		else {
			return false;
		}
	}
	return false;
}//end func
///////////////////////////////////////////////////
function transferData(fieldId1,data){
   		field1 = document.getElementById(fieldId1);
   		if(field1!=undefined&&field1!=null)
   		{
   			field1.value = data;
   		}
}//end func
///////////////////////////////////////////////////
function transferValue(fieldId1,fieldId2,transferType){
   		field1 = document.getElementById(fieldId1);
   		if(field1!=undefined&&field1!=null)
   		{
   			field2 = document.getElementById(fieldId2);
   			if(field2!=undefined&&field2!=null)
   			{
   				if(transferType==undefined||transferType=='value'){
   					field1.value = field2.value;
   				}
   				if(transferType=='text'){
   					field1.value = getDropDownSelectedText(field2);
   				}
   			}
   		}
   }
///////////////////////////////////////////////////
   function getDropDownSelectedText(listItem){
		if(listItem!=undefined){
	   		var w = listItem.selectedIndex;
			var selected_text = listItem.options[w].text;
			return selected_text;
		}
		return -1;
   }
///////////////////////////////////////////////////
 function getFormFieldValue(fieldId){
 	try
 	{
	 	field = document.getElementById(fieldId);
	 	if(field!=undefined&&field!=null){
	 		if(field.value==undefined||field==null){
	 			alert('value attribute undefined for '+fieldId);
	 			return "";
	 		}
	 		else
	 		{
	 			return field.value;
	 		}
	 	}
	 	else {
	 		alert(fieldId+' not defined');
	 		return "";
	 	}
 	}
 	catch(e){
 		alert(fieldId+' not defined: '+e.message);
 		return "";
 	}
 	
 }
////////////////////////////////////////////////////
function getRadioGroupValue(element){
  chosen = ""
  try
  {
	  if(element!=undefined&&element!=null)
	  {
		  if(element.length!=undefined&&element.length!=null)
		  {
			  for (i = 0; i <element.length; i++) {
					if (element[i].checked) {
						chosen = element[i].value;
				    }
			  }
		  }
		  else
		  {
		  	chosen = element.value;
		  }	  
		  return chosen;
	   }
	   else
	   {
	   		alert('Error in getRadioGroupValue: element not defined');
	   		return chosen;
	   }	  
   }
   catch(e){
		alert(e.message);   
		 return chosen;
   }	  
 }//end function
////////////////////////////////////////////////////
function getRadioGroupCheckedItemId(element){
  chosen = ""
  try
  {
	  if(element!=undefined&&element!=null)
	  {
		  if(element.length!=undefined&&element.length!=null)
		  {
			  for (i = 0; i <element.length; i++) {
					if (element[i].checked) {
						if(element[i].id!=undefined&&element[i].id!=null)
						{
							chosen = element[i].id;
						}
						else {
							alert('Error in getRadioGroupCheckedItemId id attribute not defined for checked Radio Item');
							return chosen;
						}
				    }
			  }
		  }
		  else
		  {
			  	if (element.checked) {
				  	if(element.id!=undefined&&element.id!=null)
					{
						chosen = element.id;
					}
					else {
						alert('Error in getRadioGroupCheckedItemId id attribute not defined for checked Radio Item');
						return chosen;
					}
				}
				else
				{
					alert('CheckBox Item not checked');
					return chosen;
				}
		  }	  
		  return chosen;
	   }
	   else
	   {
	   		alert('Error in getRadioGroupValue: element not defined');
	   		return chosen;
	   }	  
   }
   catch(e){
		alert(e.message);   
		 return chosen;
   }	  
 }//end function
////////////////////////////////////////////////////

function getCheckedRadioItemId(element){
  chosen = ""
  try
  {
	  if(element!=undefined&&element!=null)
	  {
		  if(element.length!=undefined&&element.length!=null)
		  {
			  for (i = 0; i <element.length; i++) {
					if (element[i].checked) {
						chosen = element[i].id;
				    }
			  }
		  }
		  else {
		  	 if (element.checked) {
						chosen = element.id;
			 }
		  }
		  if(chosen!=undefined&&chosen!=null){
				return chosen;
		  }
		  else
		  {
		  	alert('Error in getCheckedRadioItemId: Attribute Id not defined for checked checkbox');
		  	return "";
		  }
		  
	   }
	   else
	   {
	   		alert('Error in getCheckedRadioItemId: element not defined');
	   		return chosen;
	   }	  
   }
   catch(e){
		alert(e.message);   
		return chosen;
   }	  
 }//end function
////////////////////////////////////////////////////
function getCheckedValues(element)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var checkCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 	if(element.checked){
	 		return element.value;
	 	}
	 	else {
	 		return -1;
	 	}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{
		   	  if (element[i].checked)
		      {
		      	 if(checkCount==0){
			      	 valuesStr = element[i].value;
			      	 checkCount++;
		      	 }
		      	 else
		      	 {
		      	 	valuesStr = valuesStr +","+ element[i].value ;
		      	 }
		      }
		}//end for
		return valuesStr;
	 }
   }
   else
   {
   		alert('Check Box Items with name '+checkBoxName+' not defined');
   		return;
   }
}
///////////////////////////////////////////////////
function getUnCheckedValues(element)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var unCheckCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 	
	 	if(!element.checked){
	 		return element.value;
	 	}
	 	else {
	 		return -1;
	 	}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{

		   	  if (!element[i].checked)
		      {
		      	 if(unCheckCount==0){
			      	 valuesStr = element[i].value;
			      	 unCheckCount++;
		      	 }
		      	 else
		      	 {
		      	 	valuesStr = valuesStr +","+ element[i].value ;
		      	 }
		      }
		}//end for
		return valuesStr;
	 }
   }
   else
   {
   		alert('Check Box Items with name '+checkBoxName+' not defined');
   		return -1;
   }
}
///////////////////////////////////////////////////
function getNewCheckedValues(element,existingList)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var checkCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 	if(element.checked){
	 		if(existingList.indexOf(element.value)==-1){
	 			return element.value;
	 		}
	 		else {
	 			return -1;
	 		}
	 	}
	 	else {
	 		return -1;
	 	}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{
		   	  if (element[i].checked)
		      {
		      	 if(checkCount==0){
			      	if(existingList.indexOf(element[i].value)==-1){
				      	 valuesStr = element[i].value;
				      	 checkCount++;
			      	 }
		      	 }
		      	 else
		      	 {
		      	 	if(existingList.indexOf(element[i].value)==-1){
		      	 		valuesStr = valuesStr +","+ element[i].value ;
		      	 	}
		      	 }
		      }
		}//end for
		return valuesStr;
	 }
   }
   else
   {
   		alert('Check Box Items with name '+checkBoxName+' not defined');
   		return;
   }
}
///////////////////////////////////////////////////
function unCheckedSelectedValues(element,unCheckedItems)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var checkCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 		if(unCheckedItems.indexOf(element.value)!=-1){
	 			element.checked=false;
	 		}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{
		   	  if(unCheckedItems.indexOf(element[i].value)!=-1)
		      {
		      	 element[i].checked=false;
		      }
		}//end for
	 }	//
 }
 else
 {
   		alert('Check Box Items with name '+checkBoxName+' not defined');
 }
}
///////////////////////////////////////////////////
function disableCheckBoxes(element,checkedBoxItems)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var checkCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 		if(checkedBoxItems.indexOf(element.value)!=-1){
	 			element.disabled=true;
	 		}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{
		   	 if(checkedBoxItems.indexOf(element[i].value)!=-1){
	 			element[i].disabled=true;
	 		 }
		}//end for
	 }
   }
   else
   {
   		alert('Check Box Items with name '+checkedBoxItems+' not defined');
   }
}
///////////////////////////////////////////////////
function enableCheckBoxes(element,checkedBoxItems)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var checkCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 		if(checkedBoxItems.indexOf(element.value)!=-1){
	 			element.disabled=false;
	 		}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{
		   	 if(checkedBoxItems.indexOf(element[i].value)!=-1){
	 			element[i].disabled=false;
	 		 }
		}//end for
	 }
   }
   else
   {
   		alert('Check Box Items with name '+checkedBoxItems+' not defined');
   }
}
///////////////////////////////////////////////////
function addDisaleChangeStateEvent(element,checkedBoxItems)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var checkCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 		if(checkedBoxItems.indexOf(element.value)!=-1){
	 			element.setAttribute("onclick","this.checked=true;alert('Remove Service From Cart');");
	 		}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{
		   	 if(checkedBoxItems.indexOf(element[i].value)!=-1){
	 			element[i].setAttribute("onclick","this.checked=true;alert('Remove Service From Cart');");
	 		 }
		}//end for
	 }
   }
   else
   {
   		alert('Check Box Items with name '+checkedBoxItems+' not defined');
   }
}
///////////////////////////////////////////////////
function removeDisaleChangeStateEvent(element,checkedBoxItems)
{
 //var element = document.getElementById(checkBoxId);
 var valuesStr="-1";
 var checkCount = 0;
 if(element!=null&&element!=undefined){
	 if(element.length==undefined||element.length==null){
	 		if(checkedBoxItems.indexOf(element.value)!=-1){
	 			element.setAttribute("onclick","");
	 		}
	 } 
	 else
	 {
		for (var i=0; i < element.length; i++)
		{
		   	 if(checkedBoxItems.indexOf(element[i].value)!=-1){
	 			element[i].setAttribute("onclick","");
	 		 }
		}//end for
	 }
   }
   else
   {
   		alert('Check Box Items with name '+checkedBoxItems+' not defined');
   }
}
///////////////////////////////////////////////////
function isChildOf(elementId, parent){
	var element;
	if(elementId!=''&&typeof elementId=="string"){
		element=document.getElementById(elementId);
	}
	if(!element){
		return false;
	}
    var elements=[];
    if(typeof parent!="string"){ /*no parent: gets all parents till #document*/
	
		return false;
		/*
		while(element.parentNode){
			element=element.parentNode;
			elements.unshift(element);
			if(element==parent){
				return elements;
			}
		}
		*/
    }
	else{  /*string, presumes you want to locate the first parent node that is such TAG*/
		
		parent=parent.toUpperCase();
		while(element.parentNode){
			var parentElement=element.parentNode;
			if(parentElement!=undefined&&parentElement.id!=undefined&&parentElement.id.toUpperCase()==parent){
				return true;
			}
			element=element.parentNode;
			//elements.unshift(element);
			
		}
  }
  return false;
/* keep this comment to reuse freely:http://www.fullposter.com/?1 */
}   
///////////////////////////////////////////////////
// Replaces all instances of the given substring.
String.prototype.replaceAll = function( 
strTarget, // The substring you want to replace
strSubString // The string you want to replace in.
){
var strText = this;
var intIndexOfMatch = strText.indexOf( strTarget );
 

// Keep looping while an instance of the target string
// still exists in the string.
while (intIndexOfMatch != -1){
// Relace out the current instance.
strText = strText.replace( strTarget, strSubString )
 

// Get the index of any next matching substring.
intIndexOfMatch = strText.indexOf( strTarget );
}
 

// Return the updated string with ALL the target strings
// replaced out with the new substring.
return( strText );
}
/////////////////////////////////////////////////////
function setEventAndSubmit(formName,formEvent){
  	  try
  	  {
	  	  var form = document.forms[formName]; 
	  	  if(form!=undefined&&form!=null){
	  	      if(form.event!=undefined&&form.event!=null){
	  	      	form.event.value = formEvent;
		      	form.submit();
		      }
		      else
		      {
		      	 alert('Error in setEventAndSubmit: Form '+formName+' input element with name event not defined');	
		      }
		  }
		  else
		  {
		  	 alert('Error in setEventAndSubmit: Form '+formName+' not defined');
		  }    
	  }
	  catch(e){
	  	alert('Error in setEventAndSubmit: '+e.message);
	  }
}
/////////////////////////////////////////////////////
