//Trims a string from both sides
function strTrim(tmpStr)
{
	tmpStr = tmpStr.replace(/^\s+/,"");//remove leading
	tmpStr = tmpStr.replace(/\s+$/,"");//remove trailing
	return tmpStr;
}
//Trims all fields in a form
function trimFields()
{
	for(var i=0; i < obj.elements.length; i++)
	{
		if(obj.elements[i].type == "text" || obj.elements[i].type == "textarea" || obj.elements[i].type == "password")
		{
			obj.elements[i].value = strTrim(obj.elements[i].value);
		}
	}
}
//Checks email against pattern
function chkEmail(tmpStr)
{
	var email_pat = /^[a-z][a-z0-9_\.\-']*[a-z0-9]@[a-z0-9]+[a-z0-9\.\-_]*\.[a-z]+$/i;
	return(email_pat.test(tmpStr))
}

//Checks user name against pattern
function chkUserName(tmpStr)
{
	var user_name_pat = /[\W]+/i;
	return(!user_name_pat.test(tmpStr));
}
//Checks email against pattern
function chkColor(tmpStr)
{
	var color_pat = /[A-F0-9]{6,6}/i;
	return(color_pat.test(tmpStr))
}

//Checks URL against pattern
function chkURL(tmpStr)
{
	var url_pat = /^(http|https|ftp):\/\/([\w-]+\.)+[\w-]+(\/[\w-\.\/?%&amp;,=#@\/:]*)?/;
	return(url_pat.test(tmpStr));
}

//Validates text-area length
function chkTxtLen(strField, cntlName, maxChar)
{
	if(obj.elements[cntlName].value.length > maxChar)
	{
		alert(strField+" should be within "+maxChar+" characters.");
		obj.elements[cntlName].focus();
		obj.elements[cntlName].select();
		return false;
	}
	return true;
}

//Function for embeding flash
function writeFlash(swfPath, width, height)
{
	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+width+'" height="'+height+'" id="tv" align="middle">\n');
	document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
	document.write('<param name="movie" value="'+swfPath+'" />\n');
	document.write('<param name="quality" value="high" />\n');
	document.write('<param name="bgcolor" value="#FFFFFF" />\n');
	document.write('<embed src="' + swfPath + '" quality="high" bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="tv" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\n');
	document.write('</object>');
}

function setCookie(name, value, expires, path, domain, secure)
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	/*
	if the expires variable is set, make the correct
	expires time, the current script below will set
	it for x number of days, to make it for hours,
	delete * 24, for minutes, delete * 60 * 24
	*/
	if(expires)
	{
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires));
	document.cookie = name+"="+escape( value ) +
	((expires)?";expires="+expires_date.toGMTString():"") +
	((path)?";path="+path:"") +
	((domain)?";domain="+domain:"") +
	((secure)?";secure":"");
}

//------------------------------------------------------------------//
//Generic AJAX object for all types of HTTP get/post work			//
//Author: Debabrata Kar (dk.webtenet@gmail.com)						//
//Usage:															//
//	var ajax = new AJAX();											//
//	var arrParam = new Array();										//
//	arrParam['name1'] = 'value1';									//
//	arrParam['name2'] = 'value2';									//
//	arrParam['name3'] = 'value3';									//
//	ajax.getRequest(url, arrParam, responseHandler);				//
//	OR																//
//	ajax.postRequest(url, arrParam, responseHandler);				//
//																	//
//	NOTE: You do not need to escape() or encodeURIComponent() the	//
//	parameter names or values. AJAX will do it on its own.			//
//	You need to define responseHandler() function that will handle	//
//	response back from the server, be it XML or anything else		//
//------------------------------------------------------------------//
//The AJAX object
function AJAX()
{
	//Private variables (properties)
	var __httpRequest = null;
	var __callbackFunc = null;

	//Private method: __createHttpRequest()
	var __createHttpRequest = function()
	{
		if(window.XMLHttpRequest) //Mozilla, Safari etc
		{
			__httpRequest = new XMLHttpRequest();
		}
		else if(window.ActiveXObject) //IE
		{
			try
			{
				__httpRequest = new ActiveXObject("MSXML2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					__httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e)
				{
					//Do whatever you need to do here
					alert("AJAX cannot be used with your browser!");
				}
			}
		}
	}

	//Private method: __createParameters(arr)
	var __createParameters = function(arr)
	{
		var parameters = ""; //Initialize
		for(x in arr)
		{
			var pName = encodeURIComponent(x);
			var pVal = encodeURIComponent(arr[x]);
			parameters = (parameters == "")?pName+'='+pVal:parameters+'&'+pName+'='+pVal;
		}
		return parameters;
	}

	//Private method: __handleResponse()
	var __handleResponse = function()
	{
		if(__httpRequest.readyState == 4)
		{
			__callbackFunc(__httpRequest.responseText);
		}
	}

	//Public method: getRequest(url, arrParam, callbackFunc)
	this.getRequest = function(url, arrParam, callbackFunc)
	{
		__createHttpRequest() //recreate ajax object to defeat cache problem in IE
		__callbackFunc = callbackFunc;
		if(__httpRequest)
		{
			var param = __createParameters(arrParam);
			__httpRequest.onreadystatechange = __handleResponse;
			//Include a random number to defeat IE cache problem
			__httpRequest.open('GET', url+"?ajaxhash="+Math.random()+'&'+param, true);
			__httpRequest.send(null)
		}
	}

	//Public method: postRequest()
	this.postRequest = function(url, arrParam, callbackFunc)
	{
		__createHttpRequest() //recreate ajax object to defeat cache problem in IE
		__callbackFunc = callbackFunc;
		if (__httpRequest)
		{
			var param = __createParameters(arrParam);
			__httpRequest.onreadystatechange = __handleResponse;
			__httpRequest.open('POST', url, true);
			__httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
			__httpRequest.setRequestHeader("Content-length", param.length);
			__httpRequest.setRequestHeader("Connection", "close");
			__httpRequest.send(param);
		}
	}
}

function showCategoryList()
{
	var cat_id = document.frmAkiba1.category.options[document.frmAkiba1.category.selectedIndex].value;
	self.location = 'index.php?cat_id=' + cat_id;
}

function validateSearch()
{
	if(obj.keyword.value == "" || obj.keyword.value == "Search")
	{
		alert("Please enter your keyword to search.");
		obj.keyword.focus();
		return false;
	}
	return true;
}
//Function to display the menu
function show(object) {
  if (document.getElementById) {
    document.getElementById(object).style.visibility = 'visible';
  }
  else if (document.layers && document.layers[object]) {
    document.layers[object].visibility = 'visible';
  }
  else if (document.all) {
    document.all[object].style.visibility = 'visible';
  }
}
//Function to hide the menu
function hide(object) {
  if (document.getElementById) {
    document.getElementById(object).style.visibility = 'hidden';
  }
  else if (document.layers && document.layers[object]) {
    document.layers[object].visibility = 'hidden';
  }
  else if (document.all) {
    document.all[object].style.visibility = 'hidden';
  }
}

function validateSearch()
{
	if(objSearch.keyword.value == "" || objSearch.keyword.value == ALERT_SEARCH)
	{
		alert(ALERT_NO_KEYWORD);
		objSearch.keyword.value = '';
		objSearch.keyword.focus();
		return false;
	}
	return true;
}
function validateLogin()
{
	if(objVip.vip_user_name.value == "" || objVip.vip_user_name.value == "ID")
	{
		alert("Please enter your User Name.");
		objVip.vip_user_name.focus();
		return;
	}
	if(objVip.vip_password.value == "" || objVip.vip_password.value == "Password")
	{
		alert("Please enter your Password.");
		objVip.vip_password.focus();
		return;
	}
	var ajax = new AJAX();
	var arrParam = new Array();
	arrParam['user_name'] = objVip.vip_user_name.value;
	arrParam['password'] = objVip.vip_password.value;
	//document.getElementById("preloader_blk").innerHTML = '<img src="/img/ajax-loader.gif" />';
	ajax.getRequest("vip_login_process.php", arrParam, showPostResponse);
}
function showPostResponse(retVal)
{
	if(retVal == "SUCCESS")
	{
		window.location.reload();
	}
	else
	{
		document.getElementById("vip_msg").innerHTML = retVal;
	}
}
function focusPassword()
{
	document.getElementById("vip_login_blk").innerHTML = '<input type="text" size="8" class="loginstyle" name="vip_user_name" onfocus="focusUserName()" value="'+objVip.vip_user_name.value+'" /> <input type="password" size="8" class="passwordstyle" name="vip_password" />&nbsp;<input value="Login" class="button" type="button" onclick="validateLogin()" /><span id="vip_msg" class="red1b"></span><br /><small><a href="vip_signup.php">become a VIP member</a></small>';
	objVip.vip_password.focus();
	objVip.vip_password.select();
}
function focusUserName()
{
	if(objVip.vip_user_name.value == "ID")
		objVip.vip_user_name.value = '';
}

//Added later
function addLoadEvent(func)
{
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}

addLoadEvent(function() {
    setFooter();
})
function setFooter()
{
	var max_height = 0;
	var divElements = document.getElementsByTagName('div');
	for(i=0;i<divElements.length;i++)
	{
		if(divElements[i].id != 'footer')
		{
			if(parseInt(divElements[i].offsetTop) +parseInt(divElements[i].offsetHeight) > max_height)
			{
				max_height = parseInt(divElements[i].offsetTop) +parseInt(divElements[i].offsetHeight);
			}
		}
	}
	document.getElementById('footer').style.top = (max_height+20)+'px';
}