var cpm_fnGoToArea=null;
var cpm_fnItemAdd=null;
var cpm_fnItemRemove=null;
var cpm_fnCartClear=null;
var cpm_fnSearchSubmit=null;
var cpm_fnGoToMeta=null;
var nav_fnGoTo=null;

// BASE METHODS
function cpm_fnGoToArea_base(areaName,itemName)
{
	var p=document.URL.indexOf('?'), nurl;
	if (p>=0)
		nurl = document.URL.substring(0,p);
	else
		nurl = document.URL;
	nurl += '?page='+areaName;
	if (itemName!='')
		nurl += '&item='+itemName;
	window.location = nurl;
}

function cpm_fnGoToMeta_base(metaName,metaVal)
{    
	document.cpmMetaSearchForm.v1.value = metaName;
	document.cpmMetaSearchForm.v2.value = metaVal;
	try {
		document.cpmMetaSearchForm.submit();
	} catch (e) {
		alert(e.name + ": " + e.message);
	}
}

function cpm_fnItemAdd_base(itemName)
{ 
	document.sendForm.op.value = 'add_item';
	document.sendForm.v1.value = itemName;
	cpmSendForm();
}

function cpm_fnItemRemove_base(itemName)
{    
	document.sendForm.op.value = 'remove_item';
	document.sendForm.v1.value = itemName;
	cpmSendForm();
}

function cpm_fnCartClear_base()
{
	document.sendForm.op.value = 'clear_cart';
	cpmSendForm();
}

function cpm_fnSearchSubmit_base(searchFormName)
{
	document.forms[searchFormName].submit();
}

//ONCLICK METHODS FROM WEBSERVICE

function cpm_doOverridable0(fname)
{
	var exStr =
	'try {'+
		'if (cpm_fn'+fname+'==null || cpm_fn'+fname+'())'+
			'cpm_fn'+fname+'_base();'+
	'} catch (e) {'+
		'alert(e.name + ": " + e.message);'+
	'}';
	eval(exStr);
}

function cpm_doOverridable1(fname,a1)
{
	var exStr =
	'try {'+
		'if (cpm_fn'+fname+'==null || cpm_fn'+fname+'("'+a1+'"))'+
			'cpm_fn'+fname+'_base("'+a1+'");'+
	'} catch (e) {'+
		'alert(e.name + ": " + e.message);'+
	'}';
	eval(exStr);
}

function cpm_doOverridable2(fname,a1,a2)
{ 
	var exStr =
	'try {'+
		'if (cpm_fn'+fname+'==null || cpm_fn'+fname+'("'+a1+'","'+a2+'"))'+
			'cpm_fn'+fname+'_base("'+a1+'","'+a2+'");'+
	'} catch (e) {'+
		'alert(e.name + ": " + e.message);'+
	'}';
	eval(exStr);
}

function cpmGoToArea(areaName,itemName)
{    
	//debugger;
	//alert(areaName + ":" + itemName);
	cpm_doOverridable2('GoToArea',areaName,itemName);
}

function cpmGoToMeta(metaName,metaVal)
{
    //debugger;
	cpm_doOverridable2('GoToMeta',metaName,metaVal);
}

function cpmItemAdd(itemName)
{   
    //debugger;
	cpm_doOverridable1('ItemAdd',itemName);
	OpenView();
}

function cpmItemRemove(itemName)
{
    //debugger;
	cpm_doOverridable1('ItemRemove',itemName);
}

function cpmCartClear()
{
	cpm_doOverridable0('CartClear');
}

function cpmSearchSubmit(searchFormName)
{
	cpm_doOverridable1('SearchSubmit',searchFormName);
}

function navGoTo(page,item) {
	if (item!='')
		cpmGoToArea(item);
	else
		cpmGoToArea(page);
}

function cpmRegisterFunc(type,newFuncName)
{   
	try {
		eval('cpm_fn'+type+'='+newFuncName+';');
	} catch (e) {
		alert(e.name + ": " + e.message);
	}
}

function cpmRegisterFuncNav(type,newFuncName)
{
	try {
		eval('nav_fn'+type+'='+newFuncName+';');
	} catch (e) {
		alert(e.name + ": " + e.message);
	}
}

function cpmSendForm()
{    
	try {
		document.sendForm.submit();
	} catch (e) {
		alert(e.name + ": " + e.message);
	}
}

//CUSTOM METHODS

/*This method is specific to index.aspx*/
//function indexGoToArea(areaName,itemName) 
//{   
//    //debugger;
//    if (itemName!='')
//        window.location = 'product.aspx?page='+areaName+'&f='+itemName;
//    else
//        window.location = 'safari.aspx?page='+areaName;
//    return false;
//}
//cpmRegisterFunc('GoToArea','indexGoToArea');

/*This method is specific to safari.aspx*/
//function safariGoToArea(areaName,itemName) 
//{
//    debugger;
//    var inStart = itemName.substring(0,2).toLowerCase();
//    if (areaName=='view_online' && inStart!='m_' && inStart!='p_')
//        window.location = 'safari.aspx?page='+itemName;
//    //else if (itemName!='')
//    //    window.location = 'product.aspx?page='+metaAreaName+'&f='+itemName;
//    else
//        window.location = 'safari.aspx?page='+areaName+'&f='+itemName;
//    return false;
//}
//cpmRegisterFunc('GoToArea','safariGoToArea');

/*This method is specific to lodges.aspx*/
//function lodgesGoToMeta(metaAreaName,itemName) 
//{
//    var inStart = itemName.substring(0,2).toLowerCase();
//    if (metaAreaName=='view_online' && inStart!='m_' && inStart!='p_')
//        window.location = 'lodges.aspx?page='+itemName;
//    //else if (itemName!='')
//    //    window.location = 'product.aspx?page='+metaAreaName+'&f='+itemName;
//    else
//        window.location = 'lodges.aspx?page='+metaAreaName;
//    return false;
//}
//cpmRegisterFunc('GoToMeta','lodgesGoToMeta');

/*This method is specific to product.aspx*/
//function productGoToArea(areaName,itemName) {
//	if (itemName=='')
//		window.location = 'product.aspx?page='+areaName+'&f='+itemName;
//	else
//		window.location = 'safari.aspx?page='+itemName;
//	return false;
//}
//cpmRegisterFunc('GoToArea','productGoToArea');


//function productGoToArea(areaName,itemName) {
//    debugger;
//	if (itemName!='')
//		window.location = 'product.aspx?page='+areaName+'&f='+itemName;
//	else
//		window.location = 'safari.aspx?page='+itemName;
//	return false;
//}
//cpmRegisterFunc('GoToArea','siteGoToArea');


//COMMON METHODS
//function showLanguage(lng)
//{
//    var el;
//    el = document.getElementById('lng_en');
//    if (el)
//        el.style.display = (lng=='en')?'block':'none';
//    el = document.getElementById('lng_af');
//    if (el)
//        el.style.display = (lng=='en')?'block':'none';
//}

function OpenView()
{
   
    window.open(webRoot+'/view.aspx','viewWin','width=655,height=620,resizable=yes,scrollbars=yes,status=yes');
}

