Number.prototype.NaN0=function() { return isNaN(this) ? 0 : this; }

var USER_DATA = {
 
    Browser: {
        KHTML: /Konqueror|KHTML/.test(navigator.userAgent) &&
                !/Apple/.test(navigator.userAgent),
        Safari: /KHTML/.test(navigator.userAgent) &&
                /Apple/.test(navigator.userAgent),
        Opera: !!window.opera,
        MSIE: !!(window.attachEvent && !window.opera),
        Gecko: /Gecko/.test(navigator.userAgent) &&
                !/Konqueror|KHTML/.test(navigator.userAgent)
    },
 
    OS: {
        Windows: navigator.platform.indexOf("Win") > -1,
        Mac: navigator.platform.indexOf("Mac") > -1,
        Linux: navigator.platform.indexOf("Linux") > -1
    }
}


var IS_IE = USER_DATA['Browser'].MSIE;
 
function getAlignedPosition(e) {
    var left = 0;
    var top  = 0;
 
    while (e.offsetParent) {
        left += e.offsetLeft + (e.currentStyle ? (parseInt(e.currentStyle.borderLeftWidth)).NaN0() : 0);
        top  += e.offsetTop  + (e.currentStyle ? (parseInt(e.currentStyle.borderTopWidth)).NaN0() : 0);
        e  = e.offsetParent;
        if (e.scrollLeft) {left -= e.scrollLeft; }
        if (e.scrollTop)  {top  -= e.scrollTop; }
    }
 
    var docBody = document.documentElement ? document.documentElement : document.body;
 
    left += e.offsetLeft + (e.currentStyle ?
                (parseInt(e.currentStyle.borderLeftWidth)).NaN0()
                : 0) +
        (IS_IE ? (parseInt(docBody.scrollLeft)).NaN0() : 0) -
        (parseInt(docBody.clientLeft)).NaN0();
    top  += e.offsetTop  + (e.currentStyle ?
                (parseInt(e.currentStyle.borderTopWidth)).NaN0()
                :  0) +
        (IS_IE ? (parseInt(docBody.scrollTop)).NaN0() : 0) -
        (parseInt(docBody.clientTop)).NaN0();
 
    return {x:left, y:top};
}






function toggle_block(id,element){
	el = document.getElementById(id);
		
	var z=getAlignedPosition(element);
	//alert(z['x']);
	//alert(z['y']);
	
	
	
	//alert(element.offsetTop);
	//alert(el.offsetHeight);
	el.style.top=(z['y']-95)+'px';
	el.style.left=(z['x']-25)+'px';	
	
	if(el.style.display != 'block') {
		el.style.display = 'block';
	} else {
		el.style.display = 'none';
	}
}

function toggle_block2(id,element){
	
	el = document.getElementById(id);
	var z=getAlignedPosition(element);
	el.style.top=(z['y']-75+3)+'px';
	el.style.left=(z['x']-155)+'px';	
	if(el.style.display == 'none' || el.style.display == '') 
		{el.style.display = 'block'} 
	else 
		{el.style.display = 'none'}
}

function toggle_block3(id,element){
	el = document.getElementById(id);
	var z=getAlignedPosition(element);
	el.style.top=(z['y']-95+3)+'px';
	el.style.left=(z['x']+25)+'px';	
	if(el.style.display == 'none' || el.style.display == '') 
		{el.style.display = 'block'} 
	else 
		{el.style.display = 'none'}
}



 

function move_focus(chk_var,current_id,next_id,after_num){
       // var keyCode = event.keyCode;
        if ( ( chk_var == 9 ) || ( chk_var == 16 ) ) {
            	return false;
            }
            else{
	         	var current_str=document.getElementById(current_id).value;
	         	if(current_str.length==after_num){
		   		document.getElementById(next_id).focus();	
	        }
	   }
}

function text_area_limit(text_area_obj){
	if(text_area_obj.value.length>1000){
		text_area_obj.value=text_area_obj.value.substring(0,1000);
	}
	document.getElementById("discr_c_left").innerHTML=1000-text_area_obj.value.length;
}

function text_area_limit2(text_area_obj){
	if(text_area_obj.value.length>200){
		text_area_obj.value=text_area_obj.value.substring(0,200);
	}
	document.getElementById("keywords_c_left").innerHTML=200-text_area_obj.value.length;
}


function hours_select(c){
	if(c==1){
		document.getElementById("hours_div_hide").style.display='none';
		//document.getElementById("hours_div_hide1").style.display='none';
		//document.getElementById("hours_div_hide2").style.display='none';
		document.getElementById("company_open_24").value='0';
		document.getElementById("company_by_appoint").value='0';
	}
	if(c==2){
		document.getElementById("hours_div_hide").style.display='block';
		//document.getElementById("hours_div_hide1").style.display='block';
		//document.getElementById("hours_div_hide2").style.display='block';	
		document.getElementById("company_open_24").value='0';
		document.getElementById("company_by_appoint").value='0';
		document.getElementById("hours_sel_2").checked=true;
	}
	if(c==3){
		document.getElementById("hours_div_hide").style.display='none';
		//document.getElementById("hours_div_hide1").style.display='none';
		//document.getElementById("hours_div_hide2").style.display='none';
		document.getElementById("company_open_24").value='1';
		document.getElementById("company_by_appoint").value='0';
	}
	if(c==4){
		document.getElementById("hours_div_hide").style.display='none';
		//document.getElementById("hours_div_hide1").style.display='none';
		//document.getElementById("hours_div_hide2").style.display='none';
		document.getElementById("company_open_24").value='0';
		document.getElementById("company_by_appoint").value='1';
	}
}

var nameTemplate = /^[A-Za-z0-9ÀÂÇÉÈÊËÎÏÔÛÙÜŸÆàâçéèêëîïôûùüÿæ \-'\.]+$/;
var nameTemplate_bad = /^[\W]+$/;
var emailTemplate = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/;
var postalcodeTemplate = /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ][ |-]?\d[ABCEGHJKLMNPRSTVWXYZ]\d$/;
var phoneTemplate = /^(?:1[-\s]?)?\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4}$/;
//var urlTemplate = /^((http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;
var urlTemplate = /^(((http|https):\/\/)|(www.))(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;
//var urlTemplate = /^(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;
var letTemplate = /^[A-Za-zÀÂÇÉÈÊËÎÏÔÛÙÜŸÆàâçéèêëîïôûùüÿæ ]+$/;
var numTemplate = /^[0-9]+$/;

function onKeyUpValidateField( fieldName, pattern ){
	var strFieldValue = xajax.$( fieldName ).value;
	if( strFieldValue.length > 0 ) {
		if( !strFieldValue.match ( pattern ) ) {
			var strFieldValueLength = strFieldValue.length;
			xajax.$( fieldName ).value = strFieldValue.substring( 0, strFieldValueLength-1 );
		}
	}
        
	return false;
}

function check_landing(){
	if(document.getElementById('search_phone_area_code').value=='' || document.getElementById('search_phone_1').value=='' || document.getElementById('search_phone_2').value=='' || !phoneTemplate.test(document.getElementById('search_phone_area_code').value+' '+document.getElementById('search_phone_1').value+' '+document.getElementById('search_phone_2').value)){
		alert('Make sure that you have entered a valid Phone Number');
		return false;
	} else {
		return true;
	}
}

function check_step1(){
	if(document.getElementById('company_name').value=='' || nameTemplate_bad.test(document.getElementById('company_name').value)){
		alert('Make sure that you have entered a valid Company Name');
		return false;
	} else {
		if(document.getElementById('company_address').value==''){
			alert('Make sure that you have entered a valid Company Address');
			return false;
		} else {
			if(document.getElementById('city_id').value=='' || document.getElementById('province_id').value=='' || document.getElementById('company_postal').value=='' || !postalcodeTemplate.test(document.getElementById('company_postal').value)){
				alert('Make sure that you have entered a valid City and Province, Postal Code');
				return false;
			} else {
				if(document.getElementById('company_phone_area').value=='' || document.getElementById('company_phone_1').value=='' || document.getElementById('company_phone_2').value=='' || !phoneTemplate.test(document.getElementById('company_phone_area').value+' '+document.getElementById('company_phone_1').value+' '+document.getElementById('company_phone_2').value)){
					alert('Make sure that you have entered a valid Company Phone Number');
					return false;
				} else {
					if(document.getElementById('company_url').value!='' && !urlTemplate.test(document.getElementById('company_url').value)){
						alert('Make sure that you have entered a valid Company Website');
						return false;
					} else {
						if(document.getElementById('company_email').value!='' && !emailTemplate.test(document.getElementById('company_email').value)){
							alert('Make sure that you have entered a valid Company Email Address');
							return false;
						} else {
							document.getElementById("form_step1").submit();
							//return true;			
						}
					}
				}
			}
		}
	}
}

function check_step2(){
	
	if(document.getElementById('category_name_1').value=='' || document.getElementById('category_name_1_a').innerHTML=='Select Primary Category'){
		alert('Make sure that you have entered a valid Primary Category');
		return false;
	} else {
		document.getElementById("form_step2").submit();
		//return true;
	}
}

function check_step3(){
	return true;
}

function check_step4(){
	if(document.getElementById('x_s_name').value=='' || !nameTemplate.test(document.getElementById('x_s_name').value)){
		alert('Make sure that you have entered a valid Your First Name');
		return false;
	} else {
		if(document.getElementById('x_s_lname').value=='' || !nameTemplate.test(document.getElementById('x_s_lname').value)){
			alert('Make sure that you have entered a valid Your Last Name');
			return false;
		} else {
			if(document.getElementById('x_s_phone_area').value=='' || document.getElementById('x_s_phone_1').value=='' || document.getElementById('x_s_phone_2').value=='' || !phoneTemplate.test(document.getElementById('x_s_phone_area').value+' '+document.getElementById('x_s_phone_1').value+' '+document.getElementById('x_s_phone_2').value)){
				alert('Make sure that you have entered a valid Your Phone Number');
				return false;
			} else {
				if(document.getElementById('x_s_email').value=='' || !emailTemplate.test(document.getElementById('x_s_email').value)){
					alert('Make sure that you have entered a valid Your Email Address');
					return false;
				} else {
					//if(document.getElementById('owner_yes').checked){
					//	return true;
					//} else {
						if(document.getElementById('x_s_role').value==''){
							alert('Make sure that you have entered a valid Your Role');
							return false;
						} else {
							if(document.getElementById('autorize').checked==false){
								alert('Make sure that you are authorized to edit this listing!');
								return false;
							} else {
								//if(document.getElementById('s_email').value!='' && !emailTemplate.test(document.getElementById('s_email').value)){
								//	alert('Make sure that you have entered a valid Owners Email Address');
								//	return false;
								//} else {
									return true;	
								//}
							}
						}
					//}
				}
			}
		}
	}
}

function back_button(step,from_step){
	document.getElementById("form_step"+from_step).action="step"+(step-1)+".php";
	document.getElementById("form_step"+from_step).submit();
	
	
}

function sel_owner(s){
	if(s=="yes"){
		document.getElementById("owner_div").style.display='none';
		document.getElementById("role_div").style.display='none';
		document.getElementById("h_quo").innerHTML='5';
	} else {
		document.getElementById("owner_div").style.display='block';
		document.getElementById("role_div").style.display='block';
		document.getElementById("h_quo").innerHTML='7';
	}
}

function show_move_city() {
	xajax.$("city_id").value='';
	var search=xajax.$("company_city_province").value;
	xajax_search_move_city(search);
}

function ins_city(city_id,city_name,province_id) {
	xajax.$("company_city_province").value=city_name+", "+province_id;
	xajax.$("city_id").value=city_id;
	xajax.$("province_id").value=province_id;
	xajax.$("move_in_city_div").innerHTML = '';
	xajax.$("city_list_div").style.display='none';
	process_city_prov();
}

function show_select_form(c){
	var cat_name = xajax.$("category_name_"+c).innerHTML;
	//xajax_edit_category(c,cat_name);
	xajax.$("main_div").style.display = 'none';
	xajax.$("category_list_div").style.display = 'block';
	xajax.$("cat_num").value=c;
}

function close_category_sel(c){
	//xajax.$("category_list_div_"+c).style.display = 'none';
	
	xajax.$("move_in_cat_div_"+c).innerHTML='';
	xajax.$("cat_list_div_"+c).style.display = 'none';
	xajax.$("cat_list_"+c).style.display = 'none';
	xajax.$("zz_cat_list_"+c).style.display = 'none';
}

function find_category(c){
	xajax.$("cat_id_"+c).value='';
	xajax.$("category_name_"+c).value='';
	var search_txt=xajax.$("category_name_"+c+"_a").value;
	xajax_find_category(search_txt,c);
	xajax.$("zz_cat_list_"+c).style.display = 'block';
	xajax.$("cat_list_"+c).style.display = 'block';
	//$objResponse->addAssign("cat_list_".$cat_num,"style.display",'none');
	for (i=1;i<=3;i++){
		if(i!=c){
			close_category_sel(i);
		}
	}
}

function sel_cat(cat_id,cat_name,c){
	xajax.$("cat_id_"+c).value=cat_id;
	xajax.$("category_name_"+c).value=cat_name;
	xajax.$("category_name_"+c+"_a").value=cat_name;
	close_category_sel(c);
}

function add_a_category(c){
	var add_txt=xajax.$("add_txt_"+c).value;
	xajax.$("cat_id_"+c).value="";
	xajax.$("category_name_"+c).value=add_txt;
	xajax.$("category_name_"+c+"_a").value=add_txt;
	close_category_sel(c);
}

function change_style(obj){
	obj.className='multi_item_div2';
}

function back_style(obj){
	obj.className='multi_item_div';
}

function change_sort(){
	var ord_str=xajax.$("sort_sel").value;
	var p_area=xajax.$("search_phone_area_code").value;
	var p=xajax.$("search_phone_1").value+xajax.$("search_phone_2").value;
	xajax_change_sort(ord_str,p_area,p);
}

function view_page(page){
	var ord_str=xajax.$("sort_sel").value;
	var p_area=xajax.$("search_phone_area_code").value;
	var p=xajax.$("search_phone_1").value+xajax.$("search_phone_2").value;
	var all_rows=xajax.$("multi_count").value;
	xajax_view_page(ord_str,p_area,p,page,all_rows);
}

function update_company(cust_id){
	xajax.$("customer_id").value=cust_id;
	xajax.$("form_multi").submit();
}

//function process_postal(){
//    var postal = document.getElementById("company_postal").value;
//	var z_postal = postal.toUpperCase();
//	document.getElementById("company_postal").value=z_postal;
//}

function email_hide(hh){
	if(hh=='1'){
		document.getElementById("company_email").disabled=true;
	}
	if(hh=='0'){
		document.getElementById("company_email").disabled=false;
	}
}





function clear_location_hash()
{
	location.hash="";
}

var SelectedCityDivId = 0;
var isSelectedCityShowed = false;
var maxSelectedCityShowed = 10;

function onCitySelectedKeyUp( event,c ) 
{
	if( !isSelectedCityShowed ) {
		find_category(c);
		//return false;
	}
	//alert(event.keyCode);
	//alert(SelectedCityDivId);
	//alert(maxSelectedCityShowed);
	switch( event.keyCode ) {
	case 38:
		// alert( "up" );
		if( SelectedCityDivId > 0 ) {
			xajax.$('selected_city_'+SelectedCityDivId).style.background = "#FFFFFF";
			SelectedCityDivId--;
			xajax.$('selected_city_'+SelectedCityDivId).style.background = "#DDDDDD";
		} else {
			//xajax.$('selected_city_'+SelectedCityDivId).style.background = "#DDDDDD";
		} 
		break;
	case 40:
		// alert( "down" );
		if( SelectedCityDivId < maxSelectedCityShowed ) {
			xajax.$('selected_city_'+SelectedCityDivId).style.background = "#FFFFFF";
			SelectedCityDivId++;
			xajax.$('selected_city_'+SelectedCityDivId).style.background = "#DDDDDD";
		} else {
			//xajax.$('selected_city_'+SelectedCityDivId).style.background = "#DDDDDD";
		} 
		break;
	case 13:
		if( !isSelectedCityShowed ) {
			find_category(c);
		} else {
			var a_element = xajax.$('selected_city_'+SelectedCityDivId);
			if( a_element.attributes.length > 0 ) {
				strEval = '';
				for( i=0; i < a_element.attributes.length; i++ ) {
					if( a_element.attributes[i].nodeName == 'onclick' ) {
						strEval = a_element.attributes[i].nodeValue;
						break;
					}
				}
				if( strEval != '' )
					eval( strEval );
			}
			xajax.$("move_in_cat_div_"+c).innerHTML = '';
			xajax.$("cat_list_div_"+c).style.display='none';
			xajax.$("cat_list_"+c).style.display='none';
			SelectedCityDivId = 0;
			isSelectedCityShowed = false;
			maxSelectedCityShowed = 0;	
			
					
		}
		break;
	case 27:
		if( isSelectedCityShowed ) {
			xajax.$("move_in_cat_div_"+c).innerHTML = '';
			xajax.$("cat_list_div_"+c).style.display='none';
			xajax.$("cat_list_"+c).style.display='none';
			SelectedCityDivId = 0;
			isSelectedCityShowed = false;
			maxSelectedCityShowed = 0;
		}			
		break;
	case 9:
		// alert( "Tab" );
		break;
	default:
		find_category(c);
		break;
	}
	return false;
}

function onCitySelectedMouseOver( keySelected )
{
	if( SelectedCityDivId >= 0 ) {
		xajax.$('selected_city_'+SelectedCityDivId).style.background = "#FFFFFF";
	}
	SelectedCityDivId = keySelected;
	xajax.$('selected_city_'+SelectedCityDivId).style.background = "#DDDDDD";
}

function onCitySelectedMouseOut( keySelected )
{
	if( keySelected >= 0 && keySelected <= maxSelectedCityShowed ) {
		xajax.$('selected_city_'+keySelected).style.background = "#FFFFFF";
	}
	SelectedCityDivId = 0;
}

function process_c_name(){
		var postal = document.getElementById("company_name").value;
	    document.getElementById("z_company_name").innerHTML=postal;
		return false;
}

function process_phone_a(){
		var postal = document.getElementById("company_phone_area").value;
	    document.getElementById("z_phone_area").innerHTML=postal;
		return false;
}

function process_phone_1(){
		var postal = document.getElementById("company_phone_1").value;
	    document.getElementById("z_phone_1").innerHTML=postal;
		return false;
}

function process_phone_2(){
		var postal = document.getElementById("company_phone_2").value;
	    document.getElementById("z_phone_2").innerHTML=postal;
		return false;
}

function process_addr(){
		var postal = document.getElementById("company_address").value;
	    document.getElementById("z_address").innerHTML=postal;
		return false;
}

function process_suite(){
		var postal = document.getElementById("company_suite").value;
		if(postal!=''){
	    	document.getElementById("z_suite").innerHTML=',&nbsp;Suite&nbsp;'+postal;
		} else {
			document.getElementById("z_suite").innerHTML='';
		}
		return false;
}

function process_city_prov(){
		var postal = document.getElementById("company_city_province").value;
	    document.getElementById("z_city_province").innerHTML=',&nbsp;'+postal;
		return false;
}

function process_postal(){
		var postal = document.getElementById("company_postal").value;
		var z_postal = postal.toUpperCase();
		document.getElementById("company_postal").value=z_postal;
		var postal = document.getElementById("company_postal").value;
	    document.getElementById("z_postal").innerHTML=postal;
		return false;
}

function makeStrSelectElementByValue( element, value ){
		for( var i=0; i < element.options.length; i++ ) {
			if( element.options[i].value == value ) {
				element.options[i].selected = true;
				break;
			}
		}
}

function hours_hide(hh){
	if(hh=='1'){
		document.getElementById("hours_sel_1").checked=true;
		makeStrSelectElementByValue(document.getElementById('hours_mon_fri'),'09:00:00');
		makeStrSelectElementByValue(document.getElementById('hours_mon_fri_end'),'17:00:00');
	}
	if(hh=='0'){
		document.getElementById("hours_sel_1").checked=false;
		makeStrSelectElementByValue(document.getElementById('hours_mon_fri'),'00:00:01');
		makeStrSelectElementByValue(document.getElementById('hours_mon_fri_end'),'00:00:01');
	}
}

function open_cat(){
	if(document.getElementById("cat_2").style.display=='none'){
		document.getElementById("cat_2").style.display='block';	
	} else {
		if(document.getElementById("cat_3").style.display=='none'){
			document.getElementById("cat_3").style.display='block';	
			document.getElementById("cat_add").style.display='none';
		}
	}
}

var hhSelectedCityDivId = 0;
var hhisSelectedCityShowed = false;
var hhmaxSelectedCityShowed = 10;

function hhonCitySelectedKeyUp( event) 
{
	if( !hhisSelectedCityShowed ) {
		show_move_city();
		//return false;
	}
	//alert(event.keyCode);
	//alert(SelectedCityDivId);
	//alert(maxSelectedCityShowed);
	switch( event.keyCode ) {
	case 38:
		// alert( "up" );
		if( hhSelectedCityDivId > 0 ) {
			xajax.$('selected_city_'+hhSelectedCityDivId).style.background = "#FFFFFF";
			hhSelectedCityDivId--;
			xajax.$('selected_city_'+hhSelectedCityDivId).style.background = "#DDDDDD";
		} else {
			//xajax.$('selected_city_'+SelectedCityDivId).style.background = "#DDDDDD";
		} 
		break;
	case 40:
		// alert( "down" );
		if( hhSelectedCityDivId < hhmaxSelectedCityShowed ) {
			xajax.$('selected_city_'+hhSelectedCityDivId).style.background = "#FFFFFF";
			hhSelectedCityDivId++;
			xajax.$('selected_city_'+hhSelectedCityDivId).style.background = "#DDDDDD";
		} else {
			//xajax.$('selected_city_'+SelectedCityDivId).style.background = "#DDDDDD";
		} 
		break;
	case 13:
		if( !hhisSelectedCityShowed ) {
			show_move_city();
		} else {
			var a_element = xajax.$('selected_city_'+hhSelectedCityDivId);
			if( a_element.attributes.length > 0 ) {
				strEval = '';
				for( i=0; i < a_element.attributes.length; i++ ) {
					if( a_element.attributes[i].nodeName == 'onclick' ) {
						strEval = a_element.attributes[i].nodeValue;
						break;
					}
				}
				if( strEval != '' )
					eval( strEval );
			}
			xajax.$("move_in_city_div").innerHTML = '';
			xajax.$("city_list_div").style.display='none';
			hhSelectedCityDivId = 0;
			hhisSelectedCityShowed = false;
			hhmaxSelectedCityShowed = 0;	
			
					
		}
		break;
	case 27:
		if( hhisSelectedCityShowed ) {
			xajax.$("move_in_city_div").innerHTML = '';
			xajax.$("city_list_div").style.display='none';
			hhSelectedCityDivId = 0;
			hhisSelectedCityShowed = false;
			hhmaxSelectedCityShowed = 0;
		}			
		break;
	case 9:
		// alert( "Tab" );
		break;
	default:
		show_move_city();
		break;
	}
	return false;
}

function hhonCitySelectedMouseOver( keySelected )
{
	if( hhSelectedCityDivId >= 0 ) {
		xajax.$('selected_city_'+hhSelectedCityDivId).style.background = "#FFFFFF";
	}
	hhSelectedCityDivId = keySelected;
	xajax.$('selected_city_'+hhSelectedCityDivId).style.background = "#DDDDDD";
}

function hhonCitySelectedMouseOut( keySelected )
{
	if( keySelected >= 0 && keySelected <= hhmaxSelectedCityShowed ) {
		xajax.$('selected_city_'+keySelected).style.background = "#FFFFFF";
	}
	hhSelectedCityDivId = 0;
}

function cat_active(el){
	if(el.value=='e.g. Restaurant, Mortgage Broker, Event Planning'){
		el.value='';
		el.style.color='#000000';
	}
}

function checkbox_check(id){
	el = document.getElementById(id);
		
	if(el.checked == true) {
		el.checked = false;
	} else {
		el.checked = true;
	}
}