 /*
 *	Coomn javascript functions
 *
 */
 
 function GetKeySet(DataString, Key, Splitters){
	var arrRec=DataString.split(Splitters[0]);
	for(var i=0;i<arrRec.length;i++){
		var arrTmp=arrRec[i].split(Splitters[1]);
		if(arrTmp[0]==Key) return arrTmp;
	}
	return null;
 }

 function formatNumber(number, decPoints){
	var tmpRT=number.toString(10);
	if(tmpRT.indexOf('.')<0)
	tmpRT+='.';
	var tmp=tmpRT.substr(tmpRT.indexOf('.')+1,tmpRT.length);
	if(tmp.length>2)
	tmpRT=tmpRT.substr(0,tmpRT.indexOf('.')+3);
	for(var j=tmp.length;j<2;j++)tmpRT+='0';
	return tmpRT;
 }

 function validateField(field,message,regexp){
	var bEmpty=false;
	var strAction='enter';
	var field_value='';
	var xField=(field.length>0 && !field.type)?field[0]:field;
	var selectedIndex=-1;
	
	switch(xField.type){
		case 'textarea':
		case 'hidden':
		case 'password':
		case 'file':
		case 'text':{
			field_value=trim(field.value);
			bEmpty=(field_value.length<1);
			break;
		}
		case 'select-one':{
			if(field.selectedIndex>=0) field_value=field.options[field.selectedIndex].value;
			bEmpty=(field.selectedIndex<0 || field_value.length<1);
			strAction='select';
			break;
		}
		case 'checkbox':{
			strAction='select';
			bEmpty=!xField.checked;
			break;
		}
		case 'radio':{
			strAction='select';
			bEmpty=true;
			if(xField!=field){
				for(var intIdx=0;intIdx<field.length;intIdx++){
					if(field[intIdx].checked){
						bEmpty=false;
						selectedIndex=intIdx;
						break;
					}
				}
			}
			else
				bEmpty=xField.checked;
			break;
		}
		default:{
			bEmpty=true;
			alert('form element \''+xField.name+'\' ['+xField.type+'] is not supported by checkEmpty() function');
			break;
		}
	}
	
	if(regexp && !bEmpty){
		bEmpty=!regexp.test(field_value);
	}
	
	if(bEmpty){
		if(message) alert(message);
		else alert('Please '+strAction+' a value for field \''+xField.name+'\'');
		if(xField.type!='hidden') xField.focus();
	}
	
	return (xField.type=='radio')?selectedIndex:!bEmpty;
 }

 //Remove spaces from start and end of a string
 function trim(value) {
   var temp = value;
   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = / +/g;
   temp = temp.replace(obj, " ");
   if (temp == " ") { temp = ""; }
   return temp;
 }

 function ValidateNumeric(control){
	control.value=trim(control.value);
	if(!IsNumeric(control.value)){
		alert('Please enter numeric values only');
		control.focus();}}

 function removeChar(Target){
	var re=/[^0-9]/g;
	Target=Target.replace(re,'');
	return Target;}

 function removeNonNum(Target){
	var re=/[^0-9|\^.|\^-]/g;
	Target=Target.replace(re,'');
	return Target;}

 function removeDigit(Target){
	var re=/[0-9]/g;
	Target=Target.replace(re,'');
	return Target;}

 function IsEmail(strEmail)
 {
	var status = false;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(strEmail)) status=true;
	return status;
 }

 function IsValidURL(strURL)
 {
	var status = true;
	//var filter= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2}/
	//var filter= /^(http:\/\/www.|https:\/\/|ftp:\/\/www.|www.){1}[0-9A-Za-z\.\-]*\.[0-9A-Za-z\.\-]*$/
	//var filter= /^(http:\/\/|https:\/\/|ftp:\/\/www.|www.){1}[0-9A-Za-z\.\-\/]*\.[0-9A-Za-z\.\-]*$/
	//if (filter.test(strURL)) status=true;
	return status;

 }

 // Validate field whether empty or not
 function showHide(container, textlink)	{
	if(document.getElementById(container).style.display != "block")	{
		document.getElementById(textlink).style.display = "block";
		document.getElementById(textlink).innerHTML = "Hide";
	} else{
		document.getElementById(container).style.display = "none";
		document.getElementById(container).innerHTML = "Show";
	}
 }

 function check(field, mesage)
 {
	// Removing whitespace from field's value
	field.value = field.value.replace(/^\s*|\s*$/g,"");
	if( field.value == '' )
	{
		alert(mesage);
		field.value = '';
		if (field.type != 'hidden') {
			field.focus();
		}
		return false;
	}else{
		return true;
	}
 }

 // Function to check the entered email is valid or not
 function IsEmail(strEmail)
 {
	var status = false;
	var strEmailAddress = new String(strEmail);
	var strEmailPattern = (/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i);

	if (strEmailAddress.search(strEmailPattern) == 0 )
	{
		status = true;
	}
	return status;
 }
 
 // Confirm record deletion 
 function deleteRecords(strMessage, strLink)
 {
	if( confirm(strMessage) ) 
	{
		document.location.href = strLink ;
	}
 }

 // Dumoing variables
 function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += " ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects
	for(var item in arr) {
	var value = arr[item];
	
	if(typeof(value) == 'object') { //If it is an array,
	dumped_text += level_padding + "'" + item + "' ...\n";
	dumped_text += dump(value,level+1);
	} else {
	dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
	}
	}
	} else { //Stings/Chars/Numbers etc.
	dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
 }

 // Create Request Object
 function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
 }

 var http = createRequestObject();

 // Send Request
 function sndReq(qstring, page) {
	//var http = createRequestObject();
    http.open('get', page+'?'+qstring);
    http.onreadystatechange = handleResponse;
    http.send(null);
 }

 function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).value = update[1];
        }
    }
 }

 // Send Request
 function getCnterData(qstring, page) {
    http.open('get', page+'?'+qstring);
    http.onreadystatechange = centerName;
    http.send(null);
 }
 
 function centerName() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
        }
    }
 }
 
 // Send Request
 function setAddDate(qstring, page) {
    http.open('get', page+'?'+qstring);
    http.onreadystatechange = setSysDate;
    http.send(null);
 }
 
 // Set value
 function setSysDate() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response) {
            update = response;
            document.getElementById('txtDate').value = update;
        }
    }
 }
 
 function chkUniq(qstring, page)
 {
	http.open('get', page+'?'+qstring);
    http.onreadystatechange = getTag;
    http.send(null);
 }
 
 function getTag() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update ;

        if(response.indexOf('|' != -1)) {
            update = response;
            document.getElementById('dupTag').value = update;
        }
    }
 }
 
 function avoidRepeat(param, obj, field, msg, type)
 {
	chkUniq(param, './js/ajaxback/get.data.php');
	var repeat = document.getElementById(obj).value;
	if(parseInt(repeat) > 0)
	{
		document.getElementById(msg).innerHTML = 'Duplicate entry for ' + type ;
		document.getElementById(field).focus();
	} else {
		document.getElementById('repparamsuc').innerHTML = 'Valid entry for ' + type ;
	}
 }
 
 // Get Buying
 function getBuyData(qstring, page) {
    http.open('get', page+'?'+qstring);
    http.onreadystatechange = showRemain;
    http.send(null);
 }
 
 function showRemain() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();
		var values,rates;;

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
			valcontainerid = update[0];
			if(update[1].indexOf('~' != -1)){
				values = update[1].split('~');
				if(values[1].indexOf('#' != -1)){
					//oldrate
					rates = values[1].split('#');
					document.getElementById('oldrate').value = rates[0];
            		document.getElementById(valcontainerid).value = values[0];
					//alert(document.getElementById('oldrate').value);
				}
			}
        }
    }
 }
 
 // This function formats numbers by adding commas
 function numberFormat(nStr,prefix){
    var prefix = prefix || '';
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
	//x[1] = parseInt(x[1]) < 1 ?  00 : x[1] ;
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1))
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    return prefix + x1 + x2;
 }

 // number formatting function
 // copyright Stephen Chapman 24th March 2006, 10th February 2007
 // permission to use this function is granted provided
 // that this copyright notice is retained intact

 function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {
	var x = Math.round(num * Math.pow(10,dec));
	if (x >= 0) n1=n2='';
	var y = (''+Math.abs(x)).split('');
	var z = y.length - dec; 
	if (z<0) z--; 
	for(var i = z; i < 0; i++) y.unshift('0');
	y.splice(z, 0, pnt); 
	if(y[0] == pnt) y.unshift('0'); 
	while (z > 3) {
		z-=3; y.splice(z,0,thou);
	}
	var r = curr1+n1+y.join('')+n2+curr2;
	return r;
 }

 function selectCenter(value)
 {
 	var centerId = value;
		getCnterData('type=cnt&id='+centerId, './js/ajaxback/get.data.php');
		document.getElementById('txtCenter').value = centerId;
 }
 
 function deleteme(id, itname, page, key)
 {
 	var iID = id;
	
	if(iID > 0)
	{
		if(confirm('Do you want to delete the tag '+ itname + '?')){
			document.location.href = page + '?id='+ iID + '&del='+key;
			//alert (page + '?id='+ iID + '&del='+key);
		}
	}
	return false;
 }
 
 function showHide(id)
 {
	document.getElementById(id).style.display = (document.getElementById(id).style.display == 'block') ? 'none' : 'block';
 }
