
function openDialog(url, width, height) {
	info = "dialogHeight:" + height + "px;dialogWidth:" + width + "px";
	window.showModalDialog(url, "", info);
	return false;
}
function openWindow(url, windowName, width, height) {
	window.open(url, "", "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,dependent=yes,width=" + width + ",height=" + height + ",left = " + ((screen.width - width) / 2) + ",top = " + ((screen.height - height) / 2) + "");
	return false;
}


function handleKeyPress(event,form){
	if(event.keyCode==13){
	 	document.getElementById('ssb1').click();
	 	return false;
	 }
	  else return true;
}
function handleKeyPressOnId(event,form,id){
	
	if(event.keyCode==13){
	 	document.getElementById(id).click();
	 	return false;
	 }
	  else return true;
}

function handleKeyPressforGO(event,form){
	if(event.keyCode==13){
	 	document.getElementById('pageGoButton').click();
	 	return false;
	 }
	  else return true;
}

function searchChoice(url)
{
    var chosen = "" ; 
    var len = document.searchBarForm.searchOption.length;
    
    for (i = 0; i <len; i++)
     {
    if (document.searchBarForm.searchOption[i].checked) 
    {
     chosen = document.searchBarForm.searchOption[i].value;
    }
    }      
    if(chosen == 'Youpark') 
    {
      document.searchBarForm.action = url ;
     //document.searchBarForm.action = 'http://192.168.1.25:8080/YouPark/consumersearchcb';     
   }
   else if(chosen == 'Web') 
   {
     document.searchBarForm.q.value=document.searchBarForm.txtSearchExpression.value;
     document.searchBarForm.action = 'http://www.google.com/cse';     
     document.searchBarForm.method ='get';
   }
      
    document.searchBarForm.txtSearchExpression.value = lTrim(document.searchBarForm.txtSearchExpression.value);
    if ( document.searchBarForm.txtSearchExpression.value == '' )
    {
        document.searchBarForm.txtSearchExpression.focus();
        alert('Enter search expression !');
    }
    else
    {
        var iChars = ";\"";
        var ok = true;
        for ( var i = 0; ok && i < document.searchBarForm.txtSearchExpression.value.length; i++ )
        {
            if ( iChars.indexOf(document.searchBarForm.txtSearchExpression.value.charAt(i)) != -1 )
            {
                alert ("The search expression has special characters. \nThese are not allowed.\n");
                ok = false;
            }
        }
        if  ( ok )
        {
            document.searchBarForm.submit();
        }
    }
}
function openDeliverTypeWindow(type, windowName, width, height,lan) {

	var url = "popups/";
	if (type == "SMS") {
		url += "smsView.jsf?ln="+lan;
	} else {
		if (type == "Email") {
			url += "emailView.jsf?ln="+lan;
		} else {
			if (type == "Desktop") {
				url += "desktopView.jsf?ln="+lan;
			}
		}
	}
	return openWindow(url, windowName, width, height);
}

function printPage() {
	window.print();
	return false;
}
function goBack() {
	window.history.back();
}
function getCharacterCount(field, resultfield, maxlimit) {
	var textField = document.getElementById(field);
	var textCounterField = document.getElementById(resultfield);
	if ( textField.value.length > maxlimit) {
			textField.value = textField.value.substring(0, maxlimit);
	} else {
		textCounterField.value = maxlimit - textField.value.length;
	}
}
/* Validation Functionality */
function validateSearchSelection(msg) {
	if (document.getElementById("searchTitle").value == "") {
		alert(msg);
		return false;
	}
	return true;
}

function validateProductsSelection(msg) {
	if (!document.getElementById("istProduct").checked && !document.getElementById("secondProduct").checked && !document.getElementById("thirdProduct").checked && !document.getElementById("fourthProduct").checked && !document.getElementById("fifthProduct").checked) {
			alert(msg);
		return false;
	}
	return true;
}

function validateFriendsEmail(msg) {

	var friend1=document.getElementById("giftFriendForm:email1").value;
	var friend2=document.getElementById("giftFriendForm:email2").value;
	var friend3=document.getElementById("giftFriendForm:email3").value;
	var friend4=document.getElementById("giftFriendForm:email4").value;
	var friend5=document.getElementById("giftFriendForm:email5").value;
	
	var consumerEmail = document.getElementById("giftFriendForm:consumerEmail").value;		
	if (consumerEmail==friend1 || consumerEmail==friend2 || consumerEmail==friend3 || consumerEmail==friend4 || consumerEmail==friend5) {
			alert(msg);
		return false;
	}
	return true;
}


function validateFriendName(msg) {
	if (document.getElementById("giftFriendForm:name1").value == "") {
			alert(msg);
		return false;
	}
	return true;
}

function validateConsumerName(msg) {
	if (document.getElementById("giftFriendForm:yourname").value == "") {
			alert(msg);
		return false;
	}
	return true;
}



function openDialog(url, width, height) {
	info = "dialogHeight:" + height + "px;dialogWidth:" + width + "px";
	window.showModalDialog(url, "", info);
	return false;
}
function openWindow(url, windowName, width, height) {
	window.open(url, "", "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,dependent=yes,width=" + width + ",height=" + height + ",left = " + ((screen.width - width) / 2) + ",top = " + ((screen.height - height) / 2) + "");
	return false;
}
function openDeliverTypeWindow(type, windowName, width, height,lan) {

	var url = "popups/";
	if (type == "SMS") {
		url += "smsView.jsf?ln="+lan;
	} else {
		if (type == "Email") {
			url += "emailView.jsf?ln="+lan;
		} else {
			if (type == "Desktop") {
				url += "desktopView.jsf?ln="+lan;
			}
		}
	}
	return openWindow(url, windowName, width, height);
}
function printPage() {
	window.print();
	return false;
}
function goBack() {
	window.history.back();
}
function confirmDelete(message) {
	return confirm(message);
}

function adjustOtherCurrencyDropDowns( firstComponentName, secondComponentName ) {

	if (window.attachEvent && document.getElementsByTagName) {

    var  sel = document.getElementsByTagName("select");
	    for (var i = 0; i < sel.length; ++i) {
	        sel[i].attachEvent('onmousewheel', function() {return false;});
	    }
	}
	
	if( document.getElementById(firstComponentName) != null ) {
		if( document.getElementById(secondComponentName) != null ) {
			document.getElementById(secondComponentName).selectedIndex = document.getElementById(firstComponentName).selectedIndex;
		}		
	}	
}

function adjustOtherDependecies( componentName_0, default_value_0 ) {
	if( document.getElementById(componentName_0) != null ) {
		document.getElementById(componentName_0).value = default_value_0;
	}
}

function adjustOtherDropDownDependecies( componentName, defaultValue ) {
	alert('adjusting: ' + componentName);
	alert('adjusting Element: ' + document.getElementById(componentName));
	if( document.getElementById(componentName) != null ) {
		alert( 'Already Set Index: ' + document.getElementById(componentName).selectedIndex ); 
		document.getElementById(componentName).selectedIndex = defaultValue;
	}
}

/* Validation Functionality */
function checkRequired(componentName, msg) {

	if (document.getElementById(componentName) != null && lTrim(document.getElementById(componentName).value) == "") {
		alert(msg);
		document.getElementById(componentName).focus();
		return false;
	}else if(! allValidCharsForSearch (document.getElementById(componentName).value)){
		alert("Please do not enter special characters");
		return false;
	}
	return true;
}
function checkRequiredForInputText(componentName) {
	
    if (document.getElementById(componentName).value=="") {
        alert("Please enter a valid value ");
        return false;
    }
    
    return true;
  }
 function validateEmailByComponentId(componentId) {
 	
  	 if (! isValidEmail(document.getElementById(componentId).value)) {
        alert("Please enter a valid email address");
        document.getElementById(componentId).focus();
        return false;
    }
    return true;

  }
function validate() {
	
    if (! isValidEmail(document.forms[0].email.value)) {
        alert("Please enter a valid email address");
        return false;
    }
    
    return true;
  }
 function validateById(email ) {
	
    if (! isValidEmail(document.getElementById('productsForm:email').value)) {
        alert("Please enter a valid email address ");
        return false;
    }
    
    return true;
  }
  
  function validateIsvEmail() {
	
    if (! isValidEmail(document.getElementById('_idJsp0:loginForm:searchTitle2').value)) {
        alert("Please enter a valid email address ");
        return false;
    }else if(document.getElementById('_idJsp0:loginForm:searchTitle').value==""){
    	alert("Please provide password ");
    	return false;
    }    
    return true;
  }

  function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

function allValidCharsForSearch(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_+ ";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}
function checkSelection(componentName, msg) {
	if( document.getElementById(componentName) != null && document.getElementById(componentName).selectedIndex <= 0 ) {
		alert( msg );
		document.getElementById(componentName).focus();		
		return false;
	}
	return true;
}

function checkRange(componentName, startValue, endValue, msg) {
	//	alert( "componentName: " + componentName + " startValue: " + startValue + " endValue: " + endValue + " msg: " + msg );
	if (document.getElementById(componentName) != null && lTrim(document.getElementById(componentName).value) != "") {
		valueToCheck = parseInt(lTrim(document.getElementById(componentName).value));
		//	alert( "valueToCheck : " + valueToCheck );
		if( isNumeric( valueToCheck, false ) ) {
			//	alert( "valueToCheck : " + valueToCheck + " is valid numeric" );
			if( valueToCheck < startValue || valueToCheck > endValue ) {
				alert(msg);
				document.getElementById(componentName).focus();
				return false;
			}
		}
	}
	return true;
}

function validateNumeric( componentName, msg ) {
	//	alert( "componentName: " + componentName + " msg: " + msg );

	if (document.getElementById(componentName) != null) {
		valueToCheck = parseInt(lTrim(document.getElementById(componentName).value));
		//	alert( "valueToCheck : " + valueToCheck );		
		if( !isNumeric( valueToCheck, false ) ) {
			alert(msg);
			document.getElementById(componentName).focus();
			return false;
		}
		//	else {
			//	alert( "valueToCheck : " + valueToCheck + " is valid numeric" );
		//	}
	}
	return true;
}

function validateSupportBox( fieldRequiredMsg, fieldSelectMsg ) {
	if( checkRequired( 'fromEmailAdd', fieldRequiredMsg ) && checkRequired( 'subject', fieldRequiredMsg ) && checkRequired( 'message', fieldRequiredMsg ) ) {
		return true;
	}
	return false;
}

function validateManufacturerDevicesBox( fieldSelectMsg ) {
	if( checkSelection( 'manufacturerSOM', fieldSelectMsg ) ) {
		return true;
	}
	return false;
}

// Check that an email address is valid based on RFC 821 (?)
function isVvalidEmail(address) {
   if (address != '' && address.search) {
      if (address.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) return true;
      else return false;
   }
   // allow empty strings to return true - screen these with either a 'required' test or a 'length' test
   else return true;
}

function isValidEmailStrict(address) {
   if (isValidEmail(address) == false) return false;
   var domain = address.substring(address.indexOf('@') + 1);
   if (domain.indexOf('.') == -1) return false;
   if (domain.indexOf('.') == 0 || domain.indexOf('.') == domain.length - 1) return false;
   return true;
}

// Remove all spaces from a string
function removeSpaces(string) {
   var newString = '';
   for (var i = 0; i < string.length; i++) {
      if (string.charAt(i) != ' ') newString += string.charAt(i);
   }
   return newString;
}

// Check that a string contains only letters and numbers
function isAlphanumeric(string, ignoreWhiteSpace) {
   if (string.search) {
      if ((ignoreWhiteSpace && string.search(/[^\w\s]/) != -1) || (!ignoreWhiteSpace && string.search(/\W/) != -1)) return false;
   }
   return true;
}

// Check that a string contains only letters
function isAlphabetic(string, ignoreWhiteSpace) {
   if (string.search) {
      if ((ignoreWhiteSpace && string.search(/[^a-zA-Z\s]/) != -1) || (!ignoreWhiteSpace && string.search(/[^a-zA-Z]/) != -1)) return false;
   }
   return true;
}

// Check that a string contains only numbers
function isNumeric(string, ignoreWhiteSpace) {
	if( !isNaN(string) ) {
		if (string.search) {
			if ((ignoreWhiteSpace && string.search(/[^\d\s]/) != -1) || (!ignoreWhiteSpace && string.search(/\D/) != -1)) {
				return false;
			}
		}
	}
	else {
		return false;
	}
	return true;
}


function validateAddEditDeviceForm( formName, fieldSelectMsg, fieldRequiredMsg ) {
	var form = document.forms[formName];
	if( form.elements[formName + ':manufacturerSOM'].selectedIndex <= 0 ) {
		alert( fieldSelectMsg );
		form.elements[formName + ':manufacturerSOM'].focus();		
		return false;
	} else {
		if( form.elements[formName + ':deviceSOM'].selectedIndex <= 0 ) {
			alert( fieldSelectMsg );
			form.elements[formName + ':deviceSOM'].focus();		
			return false;
		} else {
			form.elements[formName + ':deviceIdentifier'].value = lTrim(form.elements[formName + ':deviceIdentifier'].value);
			if( form.elements[formName + ':deviceIdentifier'].value == '' ) {
				alert( fieldRequiredMsg );
				form.elements[formName + ':deviceIdentifier'].focus();		
				return false;
			}
		}
	}
	return true;
}

function lTrim(str) {
    var space
    space = 0
    if (str.length == 0)
	    return str
    for (i=0;i<=str.length-1;i++) {
        if (escape(str.charAt(i))==escape(" "))
	        space++
        else
            break
    }
    if (space > 0)
        str = str.substring(space, str.length)
    return str
}

function validatePurchasesSortByForm( formName, fieldName, fieldSelectMsg ) {
	var form = document.forms[formName];
	if( form.elements[formName + ':' + fieldName].selectedIndex <= 0 ) {
		alert( fieldSelectMsg );
		form.elements[formName + ':' + fieldName].focus();		
		return false;
	}
	return true;
}

function validateAddVoucherForm( formName, fieldSelectMsg ) {
	alert('add voucher validator');
	var form = document.forms[formName];
	alert('#'+form+'#');
	alert('#'+form.elements[formName + ':voucherNo'].value+'#');
	alert('#'+form.elements[formName + ':voucherPIN'].value+'#');
	form.elements[formName + ':voucherNo'].value = lTrim(form.elements[formName + ':voucherNo'].value);
	if( form.elements[formName + ':voucherNo'].value == '' ) {
		alert( fieldRequiredMsg );
		form.elements[formName + ':voucherNo'].focus();		
		return false;
	} else {
		form.elements[formName + ':voucherPIN'].value = lTrim(form.elements[formName + ':voucherPIN'].value);
		if( form.elements[formName + ':voucherPIN'].value == '' ) {
			alert( fieldRequiredMsg );
			form.elements[formName + ':voucherPIN'].focus();		
			return false;
		}
	}
	return true;
}

//	Passed Argument is array of elements
function resetState(object) {
	for (var i = 0; i < resetState.arguments.length; i++) {
		var element = document.getElementById( resetState.arguments[i] );
		//	alert( "Element Type : " + element.type );
		if( element != null ) {
			element.value = '';			
		}
	}
    return false;
}

function setDefaultValueMessCounter(elementName, elementValue) {
	var element = document.getElementById( elementName );
	if( element != null ) {
		element.value = elementValue;			
	}	
	return true;
}

function setDefaultValueforEmail(elementName, elementValue,ch) {
	var element = document.getElementById( elementName );
	if(ch==0){
		if( element != null ) {
			element.value = '';			
		}
	}
			
	return false;
}


function setDefaultValue(elementName, elementValue) {
	var element = document.getElementById( elementName );
	if( element != null ) {
		element.value = elementValue;			
	}	
	return false;
}

function reloadPath(url) {
	var child = window.open(url);
    setTimeout('window.location.reload(true)',3000);
}

function downloadProduct(reloadURL, downloadURL) {
	var child = window.open(downloadURL);
    setTimeout('window.location.url = reloadURL',5000);
}
function keyDownHandler(event,elementName)
{ 
      if (event.keyCode==13)
      {
	   document.getElementById( elementName ).focus();
      }
}




//	PreLoad Wait - Script
//	This script and more from http://www.rainbow.arch.scriptmania.com 

function waitPreloadPage() { 
	//DOM
	if (document.getElementById){
		document.getElementById('prepage').style.visibility='hidden';
	}else{
		if (document.layers){ 
			//NS4
			document.prepage.visibility = 'hidden';
		}
		else { 
			//IE4
			document.all.prepage.style.visibility = 'hidden';
		}
	}
}


	

