/************************************************************************************************
 * Common java script for the yooguu.
 * @package    yooguu 
 * @author     subbu
 * @date	   11-June-2007
 * @email      subedaryadav@greymatterindia.com 	
 ***************************************************************************************************/
/* Function for removing the starting whitespaces */		
 function LTrim( value ) {	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, '$1');				
	}
			
/* Removes ending whitespaces*/
 function RTrim( value ) {
 	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, '$1');				
  }

/* Removes leading and ending whitespaces*/
  function trim( value ) {				
	return LTrim(RTrim(value));				
	}

/* Function for the E-mail validation*/
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		    return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		     return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		     return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		     return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		     return false
		 }

 		 return true					
	}


function CheckEmail(emailStr)
{
	//Checking For valid email
	
	
				
	var emailPat=/^(.+)@(.+)$/
	
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)			
 	

	
	

	if (matchArray==null)
	{
		//alert("Incorrect email format. Please try again.")
		return false
	}

	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null)
	{
		// user is not valid
		//alert("The email doesn't seem to be valid.")
		return false
	}

	var IPArray=domain.match(ipDomainPat)

	if (IPArray!=null) 
	{
		for (var i=1;i<=4;i++)
		{
			if (IPArray[i]>255) 
			{	
				//alert("Destination IP address is invalid!")
				return false
			}
		}		
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null)
	{
		//alert("The domain name doesn't seem to be valid.")
		return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
		
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
	{
		//alert("The address must end in a three-letter domain, or two letter country.")
		return false
	}

	if (len<2)
	{
		//var errStr="This address is missing a hostname!"
		//alert(errStr)
		return false
	}
	return true
}

/**
* Function for the cheking the intiger value
* subbu
* subedaryadav@greymatterinia.com
* 29-Jun-07
**/
function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}


/*************************************
* Function for the phone no validation
* subbu
* subedaryadav@greymatterinia.com
* 29-Jun-07
*****************************************/

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()-+ ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters;
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }	
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length <= minDigitsInIPhoneNumber);
}

/*************************************
* Function for hide/ show div
* subbu
* subedaryadav@greymatterinia.com
* 03-July-07
*****************************************/
function toggleVisible1(id)
{
	  var item = $(id);
	  var value = item.style.display ? '' : 'none';
	  item.style.display = value;
}


/***************************************************
* Function for validate description field length
* subbu 
* subedaryadav@greymatterinia.com
* 20-July-07
***************************************************/

function checkTextLength(obj,restrictLength,truncFlag)
{
	if(obj.value.length>restrictLength){
		if(truncFlag) obj.disabled = true;
		alert("Text should not be more than " + restrictLength + " characters");
		if(truncFlag) obj.disabled = false;
		obj.focus();
		if(truncFlag) obj.value = obj.value.substring(0,restrictLength);
		return false;
	}else{
		return true;
	}
}

/***************************************************
* Function for Confirmation
* Subbu 
* subedaryadav@greymatterinia.com
* 23-July-07
***************************************************/
function confirmation(msg) {
	if(msg =="")
	{
		msg = 'Do you want to perform this Action?';
	}
	var answer = confirm(msg);
	if (answer){
		return true ;
	}
	else{
		return false;
	}
}



//This is function for the text counting 
function textCounter(message, countfield, maxlimit) 
 {
   if(message.value.length > maxlimit) // if too long...trim it!
	message.value = message.value.substring(0, maxlimit);
	// otherwise, update 'characters left' counter
   else
   { //alert(message.value.length);
	 var diff = (maxlimit - message.value.length);
	 if(diff > 0)
	 {
		countfield.style.color = "#000000";
	 }
	 else{
	 	//alert("Can not write more than "+maxlimit+" character");
	 }
	countfield.value = diff;
	$('charCount').innerHTML=diff;
   }
 }
 
 //Function unset the value of all div	
	function unSetVal(fieldArray)
	{		
		for(i=0;i < fieldArray.length;i++ )
		{
			fldname = fieldArray[i];						
			$(fldname).innerHTML='';			
		}		
	}	

		
//Function for set the error value in the div
	function setValue(id,msg)
	{
		$(id).innerHTML=msg;
		$(id).style.display="block";
	}
	
//Function unset the value of all fields	
	function setArrCss(fieldArray,txtCss)
	{		
		for(i=0;i < fieldArray.length;i++ )
		{
			fldname = fieldArray[i];			
			$(fldname).setAttribute('class',txtCss);			
			$(fldname).className=txtCss;
		}
			
	}

	
//Function for set the error value in the div
	function setCss(id,txtCss)
	{
		//$(id).setAttribute('class',txtCss);		
		$(id).className = txtCss;	
	}
	
//Function for checking file extension

function validateImage(imageFile){

  		if(imageFile!=''){
  			var temp = imageFile.split('.');
			var tempExt = temp[temp.length-1];
			
			if(tempExt!=='jpg' && tempExt!=='gif' && tempExt!=='png' && tempExt!=='JPG' && tempExt!=='GIF' && tempExt!=='PNG' && tempExt!='' && tempExt!=null)
				return 1;
			else
				return 0;
  		}
}
function validateDoc(imageFile){

  		if(imageFile!=''){
  			var temp = imageFile.split('.');
			var tempExt = temp[temp.length-1];
			
			if(tempExt!=='txt' && tempExt!=='doc' && tempExt!=='docx' && tempExt!=='xls' && tempExt!=='xlsx' && tempExt!=='ppt' && tempExt!=='pptx'  && tempExt!='' && tempExt!=null)
				return 1;
			else
				return 0;
  		}
}


   function validatePhoneNumberUs(elementValue){  
		var phoneNumberPattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;  
	   return phoneNumberPattern.test(elementValue);  
   }  
   
function check_usphone(phonenumber,useareacode)
{
	if(!useareacode)useareacode=1;
	if((phonenumber.match(/^[ ]*[(]{0,1}[ ]*[0-9]{3,3}[ ]*[)]{0,1}[-]{0,1}[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/)==null) && ((useareacode!=1) && (phonenumber.match(/^[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/)==null))) return false;
	return true;
} 


//function for the doc and pdf file
function validatedocpdf(imageFile){

  		if(imageFile!=''){
  			var temp = imageFile.split('.');
			var tempExt = temp[temp.length-1];
			
			if(tempExt!=='doc' && tempExt!=='DOC' && tempExt!=='pdf' && tempExt!=='PDF' && tempExt!='' && tempExt!=null && tempExt!=='jpg' && tempExt!=='gif' && tempExt!=='png' && tempExt!=='JPG' && tempExt!=='GIF'&& tempExt!=='ppt'&& tempExt!=='PPT')
				return 1;
			else
				return 0;
  		}
}

function validateFileCustom(fileName, arrAllowedExt){
	var mozillaLatest = false;
	var validFile = true;
	var browserOS = '';
	//alert(fileName);	
	//alert(fileName.indexOf('\\'));	
	//alert(navigator.userAgent);
	if(navigator.userAgent.indexOf('Gecko')!=-1 && navigator.userAgent.indexOf('3.0')!=-1){
		mozillaLatest = true;
	}
	
	if(navigator.platform.indexOf('Linux')!=-1){
		browserOS = 'Linux';
	} else if(navigator.platform.indexOf('Mac')!=-1){
		browserOS = 'Mac';
	} else {
		browserOS = 'Windows';
	}		
	
	if( browserOS=='Linux' ||  browserOS=='Windows' ){		
		if( !mozillaLatest && fileName.indexOf('\\')==-1 ){
			validFile = false;
		}		
	} else {
		if( !mozillaLatest && fileName.indexOf('/')==-1 ){
			validFile = false;
		}
	}
	
	
	
	if(fileName!='' && validFile){
		var temp = fileName.split('.');
		var tempExt = temp[temp.length-1];
		var extenMatch = false;
		
		for(i=0; i<arrAllowedExt.length; i++){
			if(arrAllowedExt[i].toLowerCase()==tempExt.toLowerCase()){		
				extenMatch=true;
			}
		}
		return extenMatch;		
	}
	
}

var characterNotAllow = " -/\_~";
// characters which are allowed in international phone numbers
function stripCatalog(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);        
        if (characterNotAllow.indexOf(c) != -1) return false;
    }	
    return true;
}

function matchPassword(field1, field2, divError, divErrorValue)
{
	if(trim($(field1).value) != trim($(field2).value))
	{
		setValue(divError,divErrorValue);
		$(divError).style.display = 'block';	
	}
	else
	{
		$(divError).style.display = 'none';	
	}

}

/** function for testing the url validation
@param : url
@return: true/false
@ added: subbu, subedaryadav@greymatterindia
@30-09-2008
*/
function urlValidate(url) {
    var v = new RegExp();
    v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.,=]+$");
    if (!v.test(url)) {       
        return false;
    }
    
    return true;

}

/// Added by Sachin : function to check all/none by check main check box ////
function checkUncheckAll(mainCheck, subChecks, count){
	
	for (i=1; i<=count; i++){
		$(subChecks+i).checked = $(mainCheck).checked;
	}	
}


function openPopUp(url_add){
	//url_add = 'http://192.168.0.97'+url_add;
	//alert(url_add);
	//location.href=url_add;
	window.open(url_add,'Quartzy', 'width=300, height=200, menubar=yes, status=yes, location=yes, toolbar=yes, scrollbars=yes');
}

function gotoURL(url_add){
	//url_add = 'http://192.168.0.97'+url_add;
	location.href=url_add;	
}

function confirmRedirect(msg, redirectTrue, redirectFalse){

	if(msg ==""){
		msg = 'Are you sure you want to continue';
	}
	var confirmation = confirm(msg);
	
	if(confirmation){
		window.open(redirectTrue,'Quartzy', 'width=10, height=10, menubar=yes, status=yes, location=yes, toolbar=yes, scrollbars=yes');
		//window.location = redirectTrue;
		//location.href = redirectTrue;
	} else {
		window.open(redirectFalse,'Quartzy', 'width=10, height=10, menubar=yes, status=yes, location=yes, toolbar=yes, scrollbars=yes');
		//window.location = redirectFalse;
		//location.href = redirectFalse;
	}

}

// function for check the special charatcter
function checkSplChar(txtValue)
{
	var regex=/^[0-9A-Za-z\s]+$/; 
	if(!regex.test(txtValue))
	{
		return false;
	}
	return true;
}

function checkName(txtValue)
{
	var regex=/^[A-Za-z \s]+$/; 
	if(!regex.test(txtValue))
	{
		return false;
	}
	return true;
}

function showHideDivGen(divId){
	if(document.getElementById(divId).style.display =='none' ){
		document.getElementById(divId).style.display ='block';
	} else{
		document.getElementById(divId).style.display ='none';
	}
}

function swapIconGen(icon1, icon2, divId){
	if(document.getElementById(divId).src==icon1){
		document.getElementById(divId).src=icon2;
				document.getElementById(divId).title='Hide Details';
	} else {
		document.getElementById(divId).src=icon1;
		document.getElementById(divId).title='Show Details';
	}
}
