var localIsDOM = document.getElementById?true:false;
var localIsJava = navigator.javaEnabled();
var localIsStrict = document.compatMode=='CSS1Compat';
var localPlatform = navigator.platform;
var localVersion = "0";
var localBrowser = "";
var localBFamily = "";
var isHttps = false;
var ajaxObjects = new Array();
var  glb_vfld;
var scrollH=0;
if (window.opera && localIsDOM) {
    localBFamily = localBrowser = "Opera";
    if (navigator.userAgent.search(/^.*Opera.([\d.]+).*$/) != -1)
        localVersion = navigator.userAgent.replace(/^.*Opera.([\d.]+).*$/, "$1");
    else if (window.print)
        localVersion = "6";
    else
        localVersion = "5";
} else if (document.all && document.all.item)
    localBFamily = localBrowser = 'MSIE';
if (navigator.appName=="Netscape") {
    localBFamily = "NC";
    if (!localIsDOM) {
        localBrowser = 'Netscape';
        localVersion = navigator.userAgent.replace(/^.*Mozilla.([\d.]+).*$/, "$1");
        if(localVersion != '')
            localVersion = "4";
    } else if(navigator.userAgent.indexOf("Safari") >= 0)
        localBrowser = 'Safari';
    else if (navigator.userAgent.indexOf("Netscape") >= 0)
        localBrowser = 'Netscape';
    else if (navigator.userAgent.indexOf("Firefox") >= 0)
        localBrowser = 'Firefox';
    else
        localBrowser = 'Mozilla';
}

if (navigator.userAgent.indexOf("MSMSGS") >= 0)
    localBrowser = "WMessenger";
else if (navigator.userAgent.indexOf("e2dk") >= 0)
    localBrowser = "Edonkey";
else if (navigator.userAgent.indexOf("Gnutella") + navigator.userAgent.indexOf("Gnucleus") >= 0)
    localBrowser = "Gnutella";
else if (navigator.userAgent.indexOf("KazaaClient") >= 0)
    localBrowser = "Kazaa";

if (localVersion == '0' && localBrowser != '') {
    var rg = new RegExp("^.*"+localBrowser+".([\\d.]+).*$");
    localVersion = navigator.userAgent.replace(rg, "$1");
}
var localIsCookie = ((localBrowser == 'Netscape' && localVersion == '4')?(document.cookie != ''):navigator.cookieEnabled);
if (document.location.protocol == "https:") {
    isHttps = true;
}

function trim(str) {
  return str.replace(/^\s+|\s+$/g, '');
}

function setFocusDelayed() {
  glb_vfld.focus()
}

function setfocus(vfld) {
  // save vfld in global variable so value retained when routine exits
  glb_vfld = vfld;
  setTimeout( 'setFocusDelayed()', 100 );
}
function checkRequired(obj, msg) {
	err = true;
    radio = false;
    if (isset(obj.type) && (obj.type == 'text' || obj.type == 'password' || obj.type == 'textarea') && !obj.value.search(/^[\s]*$/gi) ) err = false;
    else if(typeof(obj.length) != 'undefined') {
        if(obj[0].type=="radio") {
            radio = true;
        }
    } else if(typeof(obj.tagName) != 'undefined') {
        if(obj.tagName.toUpperCase() == "SELECT") {
            if(obj.selectedIndex<=0) err = false;
            else {
                if(trim(obj.options[obj.selectedIndex].value)=='') err = false;
            }
        }
    }
    if(radio) {
        for(i=0;i<obj.length;i++) {
            if(obj[i].checked) return (i+1);
        }
        if(i==obj.length) {
            err = false;
            obj = obj[0];
        }
    }
    if(!err) {
        if(msg != '') {
            alert(msg);
            setfocus(obj);
        }
    }
    return err;
}

function checkRequiredField(obj, msg) {
	err = true;
    radio = false;
    if (isset(obj.type) && (obj.type == 'text' || obj.type == 'password' || obj.type == 'textarea') && !obj.value.search(/^[\s]*$/gi) ) err = false;
    else if(typeof(obj.length) != 'undefined') {
        if(obj[0].type=="radio") {
            radio = true;
        }
    } else if(typeof(obj.tagName) != 'undefined') {
        if(obj.tagName.toUpperCase() == "SELECT") {
            if(obj.selectedIndex<=0) err = false;
            else {
                if(trim(obj.options[obj.selectedIndex].value)=='') err = false;
            }
        }
    }
    if(radio) {
        for(i=0;i<obj.length;i++) {
            if(obj[i].checked) return (i+1);
        }
        if(i==obj.length) {
            err = false;
            obj = obj[0];
        }
    }
   
    return err;
}
function checkRequired_with_default_text(obj, msg, default_text) {
	err = true;
    radio = false;
	if(obj.value == default_text || obj.value == "")
	{
		err = false;
	}
	else   if (isset(obj.type) && (obj.type == 'text' || obj.type == 'password' || obj.type == 'textarea') && !obj.value.search(/^[\s]*$/gi)) err = false;
    else if(typeof(obj.length) != 'undefined') {
        if(obj[0].type=="radio") {
            radio = true;
        }
    } else if(typeof(obj.tagName) != 'undefined') {
        if(obj.tagName.toUpperCase() == "SELECT") {
            if(obj.selectedIndex<=0) err = false;
            else {
                if(trim(obj.options[obj.selectedIndex].value)=='') err = false;
            }
        }
    }
    if(radio) {
        for(i=0;i<obj.length;i++) {
            if(obj[i].checked) return (i+1);
        }
        if(i==obj.length) {
            err = false;
            obj = obj[0];
        }
    }
    if(!err) {
        if(msg != '') {
            alert(msg);
            setfocus(obj);
        }
    }
    return err;
}


function isset(obj) {
	return typeof(obj) != 'undefined' && obj !== null;
}

function redirect(url) {
    if(trim(url)!='') {
        window.location.href = url;
    } else {
        window.location.reload();
    }
}
var nbsp = 160;    
var node_text = 3; 
var emptyString = /^\s*$/
var glb_vfld;      

function msg(fld,msgtype,message) 
{

  var dispmessage;
  if (emptyString.test(message))
    dispmessage = String.fromCharCode(nbsp);
  else
    dispmessage = message;

  var elem = document.getElementById(fld);
  elem.innerHTML = dispmessage;
  elem.className = msgtype;   
};

var proceed = 2;

function commonCheck(vfld,ifld,reqd)   
{

  if (!document.getElementById)
    return true;  
  var elem = document.getElementById(ifld);

  if (emptyString.test(vfld.value)) {
    if (reqd) {
      msg (ifld, "verdana10rednormal", "ERROR: required");
      setfocus(vfld);
	
      return false;
    }  else {
      msg (ifld, "warn", "");  
      return true;
    }
  }
  return proceed;
}

function validatePresent(vfld,ifld ) 
{
  var stat = commonCheck (vfld, ifld, true);
  if (stat != proceed) return stat;
  msg (ifld, "warn", "");
  return true;
};

function validate_passwords(password, repassword)
{
	if(password.value != repassword.value)	{
		msg ('error_cpword', "verdana10rednormal", "ERROR: Password Mismatch");
		setfocus(repassword);
		return false;
	}	else	{
		return true;
	}
}
function validateEmail(vfld, msg)   
{
  var tfld = trim(vfld.value); 
  var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/
  var email2 = /^[A-Za-z][\w.-]+@\w[\w.-]+\.[\w.-]*[A-Za-z][A-Za-z]$/
  if (!email.test(tfld)) {
    alert(msg)
    setfocus(vfld);
    return false;
  }else  if (!email2.test(tfld))	{
	alert(msg)
	setfocus(vfld);
	return false;
  } else {
   return true;
  }
};

function commonComboCheck(vfld,ifld,reqd)  
{
  if (!document.getElementById)
    return true;  
    var elem = document.getElementById(ifld);

  if (emptyString.test(vfld.options[vfld.selectedIndex].value)) {
    if (reqd) {
      msg (ifld, "verdana10rednormal", "ERROR: required");
      setfocus(vfld);
      return false;
    }
    else {
      msg (ifld, "warn", "");   
      return true;
    }
  }
  return proceed;
}

function emptyComboBox(comboboxid) {
     var combo_obj = document.getElementById(comboboxid);
	 if(combo_obj.options) {
		var combo_len =  combo_obj.options.length;
        if (combo_len > 0 ) {
            for (j=(combo_len-1); j>=0;j--) {
                combo_obj.remove(j);
            }
        }
	 }
}

function toggle_all_box(obj, flag)
{
	if(obj.elements.length>0) {
		for(i=0;i<obj.elements.length;i++) {
			if(obj.elements[i].type=="checkbox") {
                obj.elements[i].checked = flag;
			}
		}
	}
}

function is_all_box(obj,flag,main_box)
{
	if(obj.elements.length>0) {
		for(i=0;i<obj.elements.length;i++) {
			if(obj.elements[i].type=="checkbox" && obj.elements[i].name!=main_box) {
				if(obj.elements[i].checked!=flag) {
                    return false;
			    }
			}
		}
	}
	return true;
}
function change_box_stat(obj,main_box)
{
	document.getElementById(main_box).checked = ( is_all_box(obj, true, main_box) ? true : false );
}
function set_button_stat(obj, main_box, btnobj) {
    if(is_all_box(obj, false, main_box)) {
		btnobj.disabled = true;
	} else {
		btnobj.disabled = false;
	}
}

function validateFileExtension (obj, ifld, error_msg ) 
{
	error_msg = ((error_msg=="" || typeof (error_msg) == "undefined") ? "Invalid Image format" : error_msg );
	if (!obj.value.match(/(.gif|.png|.jpg|.jpeg)$/i)) {
		msg (ifld, "requiredfield", error_msg);
		obj.focus();
		return false;
	} else {
		msg (ifld, "requiredfield", "");
		return true;
	}
}
function OpenPopUp(filename,title,parameters)
{
	window.open(filename,title,parameters);
}

function validateWebsite  (vfld,  ifld,  reqd)   
{
	var stat = commonCheck (vfld, ifld, reqd);
    if (stat != proceed) return stat;

    var tfld = trim(vfld.value);  // value of field with whitespace trimmed off
	//changed later to make allow long url path
	//var website = /^(((h|H?)(t|T?)(t|T?)(p|P?)(s|S?))\:\/\/)?(www.|[a-zA-Z0-9].)[a-zA-Z0-9\-\.]+\.[a-zA-Z]*([\/]*[a-zA-Z0-9\.\_\?\&\/\~]*)*$/  //expression accepts any URL with or without http/https
	var website  = /^((h|H?)(t|T?)(t|T?)(p|P?)(s|S?)?):\/\/+((w|W?)(w|W?)(w|W?)\.)?[a-zA-Z0-9\-\.]{3,}\.[a-z]{2,5}$/;
	//var website = /^(((h|H?)(t|T?)(t|T?)(p|P?)(s|S?))\:\/\/)?(www.|[a-zA-Z0-9].)[a-zA-Z0-9\-\.]+\.[a-zA-Z]*[\/]*$/  //expression accepts any URL with or without http/https
	//var website =/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
	if (!website.test(tfld)) {
        msg (ifld, "requiredfield", "Unusual website url - check if correct");
        return false;
	}    else {        
		msg (ifld, "requiredfield", "");
        return true;
	}
}

function validateDate1(vfld,ifld, msg) {
    if (!isDate(vfld.value)) {
    	msg (ifld, "verdana10rednormal", "ERROR: date Invalid");
		setfocus(vfld);
		return false;
	}
    return true;
}

function validateDate(vfld, ifld, reqd) {
    var datestring = /^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$/;
	var tfld = trim(vfld.value); 
	if (!datestring.test(tfld)) {
        msg (ifld, "requiredfield", "Unusual date format - check if correct");
        return false;
	}	else	{
		if (!isDate(vfld.value)) { 
			msg (ifld, "requiredfield", "ERROR: not a valid date, please check");
			return false;
		}	else	{ 
			msg (ifld, "requiredfield", "");
			return true;
		}
	}
}

function field_validation_using_id(id, msg)
{
	if (document.getElementById(id))
	{
		if(document.getElementById(id).value == "")
		{
			alert(msg);
			document.getElementById(id).focus();
			return false;
		}	else	{
			return true;
		}
	}	else	{
		return true;
	}
}

function file_validation_using_id(id, msg) {
	if (document.getElementById(id))
	{
		var ext="jpg|jpeg|gif|png";
		var re = new RegExp("(\\." + ext + ")$", "i");
		allowSubmit= re.test( document.getElementById( id).value ); 
		if( allowSubmit )
		{
			return true;
		}	else	{
			alert(msg);
			document.getElementById(id).focus();
			return false;
		}
	}	else	{
		return true;
	}
}

function validate_exhibit_category(theName){
   var counter=0;
   var cb=document.getElementsByName(theName)
   for (i=0; i<cb.length; i++) {
         if (cb[i].checked || cb[i].selected)
             counter++;
        
	}
	if (counter==0) {  
		return false;
	}
	return true;
}

function validate_search_exhibit(frmName){
	if(frmName.keyword.value == "")
	{
		alert("Please enter keyword to search");
		setfocus(frmName.keyword);
		return false;
	}
	return true;
}

function limitCaptionText(obj, limitNum) {
	var content="";
	var regEx = /<\S[^><]*>/g;
	text1 = obj.value;
	text = text1;
	tem_text =	text;
	text1 = tem_text.replace(regEx, "");
	formcontent=text1.split(" ");
	if (formcontent.length-1 > limitNum) {
		alert("Please enter caption less then " +  limitNum + " words");
		return false;
	}	else	{
		return true;
	}
	
}

function FCK_limitCaptionText(txtvalue, limitNum,msg) {
	var content="";
	var regEx = /<\S[^><]*>/g;
	text1 = txtvalue;
	text = text1;
	tem_text =	text;
	text1 = tem_text.replace(regEx, "");
	formcontent=text1.split(" ");
	if (formcontent.length-1 > limitNum) {
		alert(msg);
		return false;
	}	else	{
		return true;
	}
}
function FCK_limitCaptionText_Field(txtvalue, limitNum,msg) {
	var content="";
	var regEx = /<\S[^><]*>/g;
	text1 = txtvalue;
	text = text1;
	tem_text =	text;
	text1 = tem_text.replace(regEx, "");
	formcontent=text1.split(" ");
	if (formcontent.length-1 > limitNum) {
		//alert(msg);
		return false;
	}	else	{
		return true;
	}
}
function limitAbstractText(obj, limitNum) {
	var content="";
	text = obj.value;
	formcontent=text.split(" ");
	if (formcontent.length-1 > limitNum) {
		for (i=0;i<limitNum;i++) {
			content+=formcontent[i]+" "
			obj.value=content
		}
	}
}

function fadIn(){
  
  var mainObj = document.getElementById('mainDiv');
  var fadObj = document.getElementById('fadeDiv');
  fadObj.style.display = 'block';
  fadObj.style.width = mainObj.style.width;
  fadObj.style.height = mainObj.style.height;
  fadObj.style.opacity = (30 / 100);
  fadObj.style.MozOpacity = (30 / 100);
  fadObj.style.KhtmlOpacity = (30 / 100);
  fadObj.style.filter = "alpha(opacity=" + 30 + ")";
}

function hideDiv(){
	var fadObj = document.getElementById('fadeDiv');
	fadObj.style.display = 'none'; 
}

// This function will validate for spaces
function check_spaces(FieldValue){
	return FieldValue.match(/[\w\d]/) != null;
}

function validateNumeric(obj,msg)
{
	if(isNaN(obj.value))
	{
		alert(msg);
		setfocus(obj);
		return false;
	}
	return true;
}

function adjustHeight(obj){
	var charachters_per_row ;
	charachters_per_row = 10;
	txtValue = obj.value;
	obj_id = obj.id;
	current_number_of_rows = document.getElementById(obj_id).getAttribute('number_of_rows');
	counting_linefeeds = txtValue.split('\n');
	total_lines =  counting_linefeeds.length;
	num_txt_lines = 0;
	for(var i = 0 ; i < total_lines ; i++)
	{
		last_row_length = counting_linefeeds[i].length;
		if(last_row_length != 0)
		{
			num_txt_lines = eval(eval(num_txt_lines) + 1);
		}
		if((counting_linefeeds[i]) == "\n")
		{
			alert(counting_linefeeds[i]);
		}
	}
	current_height_string = obj.style.height;
	obj.rows = obj.rows + 1;
	height_string = eval(current_height_string.split('px'));
	new_height = eval(eval(height_string[0])+16);
	substract_height = eval(eval(height_string[0])-16);
	//if((counting_linefeeds.length > obj.rows || last_row_length > 5) && (obj.value.length > (total_lines*5) ))	{
	if((counting_linefeeds.length > obj.rows || last_row_length > charachters_per_row ) && (obj.value.length > (total_lines*charachters_per_row) ) || last_row_length > charachters_per_row)	{
		obj.style.height = new_height + "px";
		obj.value = obj.value+" \n ";
		document.getElementById(obj_id).setAttribute('number_of_rows', eval(eval(document.getElementById(obj_id).getAttribute('number_of_rows')) + 1)) ; 
	}	
	//obj.style.height = 16 * Math.ceil(obj.value.length / obj.cols);
}



/*
 * Copyright 2006 by Scott Tabar
 * Usage is granted as long as this credit remains in place.
 * If used in a production/commerical product, then please drop 
 * me a line at http://scott-tabar-safari.blogspot.com
 */
function updateTextareaHeight(obj)
{
	if ( obj == null ) {
		return false;
	}

	// NOTE: This is using regular expressions to count spaces and linefeeds
	var objText = obj.value;
	var linefeedsArray = objText.match(/[\n\r]/g);
	var linefeeds = ( linefeedsArray == null ? 0 : linefeedsArray.length);
	var extraRows = Math.round( objText.length / obj.cols );
	var newRows = linefeeds + extraRows;
	//alert(obj.rows);
	if ( newRows != obj.rows )  {
	obj.rows=newRows;
	}
}

function checkRequired_with_default_text_field(obj, msg, default_text) {
	err = true;
    radio = false;
	if(obj.value == default_text || obj.value == "")
	{
		err = false;
	}
	else   if (isset(obj.type) && (obj.type == 'text' || obj.type == 'password' || obj.type == 'textarea') && !obj.value.search(/^[\s]*$/gi)) err = false;
    else if(typeof(obj.length) != 'undefined') {
        if(obj[0].type=="radio") {
            radio = true;
        }
    } else if(typeof(obj.tagName) != 'undefined') {
        if(obj.tagName.toUpperCase() == "SELECT") {
            if(obj.selectedIndex<=0) err = false;
            else {
                if(trim(obj.options[obj.selectedIndex].value)=='') err = false;
            }
        }
    }
    if(radio) {
        for(i=0;i<obj.length;i++) {
            if(obj[i].checked) return (i+1);
        }
        if(i==obj.length) {
            err = false;
            obj = obj[0];
        }
    }
    
    return err;
}

function validateEmail_Field(vfld, msg)   
{
  var tfld = trim(vfld.value); 
  var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/
  var email2 = /^[A-Za-z][\w.-]+@\w[\w.-]+\.[\w.-]*[A-Za-z][A-Za-z]$/
  if (!email.test(tfld)) {
    //return msg;
	//setfocus(vfld);
    return false;
  }else  if (!email2.test(tfld))	{	
	//setfocus(vfld);
	return msg;
//	return false;
  } else {
   return true;
  }
}

function extractNumber(obj, decimalPlaces, allowNegative)
{	
	var temp = obj.value;
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
	
}

function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}

function checkWordInTextBox()
{
	var add_words = document.getElementById("id_add_keyword").value;
	var arr_key = add_words.split(",");
	var max_words = eval(max_additional_keywords) + 1;
	if (arr_key.length >= max_words) {
		
		alert("Keywords must be less then " + max_additional_keywords + " .");
		new10key  = "";
		for (i=0; i<(arr_key.length - 1); i++) {	//alert(i + ":- " + arr_key[i]);
			if (new10key == "") {
				new10key = arr_key[i];
			} else {
				new10key = new10key + "," + arr_key[i];
			}
		}
		document.getElementById("id_add_keyword").value = new10key;
	}	
}

function fun_search_by_theme(val)
{
	location.href = "search.php?exhibit_category=" + val + "";
}

function fun_search_photoghapher_name(val)
{
	var ajaxIndex = ajaxObjects.length;
    ajaxObjects[ajaxIndex] = new sack();
    ajaxObjects[ajaxIndex].requestFile = "index.process.php";	// Saving product in this file
    ajaxObjects[ajaxIndex].method = "POST";
    ajaxObjects[ajaxIndex].setVar('mem_id', val);
    ajaxObjects[ajaxIndex].setVar('jsdone', 1);
    ajaxObjects[ajaxIndex].onCompletion = function(){ location.href = ajaxObjects[ajaxIndex].response; }
    ajaxObjects[ajaxIndex].runAJAX();
} 
