/* Extened Function */
jQuery.fn.extend({
	/**
	* Returns get parameters.
	* If the desired param does not exist, null will be returned
	*
	* To get the document params:
	* @example value = $(document).getUrlParam("paramName");
	*
	* To get the params of a html-attribut (uses src attribute)
	* @example value = $('#imgLink').getUrlParam("paramName");
	*/
	getUrlParam: function(strParamName){
		strParamName = escape(unescape(strParamName));

		var returnVal = new Array();
		var qString = null;

		if ($(this).attr("nodeName")=="#document") {
			if (window.location.search.search(strParamName) > -1 ){
				qString = window.location.search.substr(1,window.location.search.length).split("&");
			}

		} else if ($(this).attr("src") != undefined) {
			var strHref = $(this).attr("src")
			if ( strHref.indexOf("?") > -1 ) {
				var strQueryString = strHref.substr(strHref.indexOf("?")+1);
				qString = strQueryString.split("&");
			}

		} else if ($(this).attr("href") != undefined) {
			var strHref = $(this).attr("href");
			if ( strHref.indexOf("?") > -1 ) {
				var strQueryString = strHref.substr(strHref.indexOf("?")+1);
				qString = strQueryString.split("&");
			}

		} else {
			return null;
		}

		if (qString==null) return null;

		for (var i=0;i<qString.length; i++){
			if (escape(unescape(qString[i].split("=")[0])) == strParamName){
				returnVal.push(qString[i].split("=")[1]);
			}
		}

		if (returnVal.length==0) return null;
		else if (returnVal.length==1) return returnVal[0];
		else return returnVal;
	},

	/**
	* Create inline calendar
	*/
	loadCalendar: function(nyear, nmonth,m) {
		//alert(nyear);
		$(this).waitCalendar();
		var dt = new Date();
		if (nyear == undefined) nyear = dt.getFullYear();
		//alert(nyear);
		if (nmonth == undefined) nmonth = dt.getMonth()+1;
		if (m == undefined) m = 2;
		$.get('ajax/events.php', {year: nyear, month: nmonth,m:m },  function(data){
			var strData= data.split("|");
			var strCalendar = strData[0];

			var strDesc = strData[1];
			for(i = 2; i < strData.length; i++) strDesc += "|" + strData[i];

			setTimeout(function(){
				$('div#displayCalendar').html( strCalendar );
				/*$('div#txtCalendar').html( strDesc );*/

				$('div#displayCalendar a#btPrev').click( function() {
					$(this).loadCalendar( $('a#btPrev').getUrlParam("year"), $('a#btPrev').getUrlParam("month"), $('a#btPrev').getUrlParam("m"))
					return false;
				});
				$('div#displayCalendar a#btNext').click( function() {
					$(this).loadCalendar( $('a#btNext').getUrlParam("year"), $('a#btNext').getUrlParam("month"), $('a#btNext').getUrlParam("m"))
					return false;
				});

				$("a").each( function() {
					if ($(this).attr('href') == '#' || $(this).attr('href') == '') {
						$(this).attr({href:''});
						$(this).click( function() {
							return false;
						});
					}
					$(this).focus( function() {
						this.blur();
					});
				});

			}, 500);

		});
	},

	waitCalendar: function() {
		$('div#displayCalendar').html( '<div class="loading"></div>' );
		/*$('div#txtCalendar').html( '' );*/
	},

	slideToggle: function( el1, el2 ) {
		var pos1 = parseInt($(el1).css('left') );
		var pos2 = parseInt($(el2).css('left') );

		if ( parseInt($(el2).css('left')) == 0 && $(el2).css('display')!='none') { // Close another item
			//alert('Close another: ' + el2);
			$(el2).animate({opacity: 'show'}, "fast", function(){
				$(el2).animate({ left: 250}, "normal", function() { $(this).slideToggle(el1, el2) } );
			});
		} else if ( parseInt($(el1).css('left')) == 0 && $(el1).css('display')!='none') { // Close current item
			//alert('Close current: ' + el1);
			$(el1).animate({opacity: 'show'}, "fast", function(){
				$(el1).animate({ left: 250}, "normal" );
			});
		} else {
			//alert('Open: ' + el1);
			if ( $(el1).css('display')=='none' ) $(el1).css('display', 'block');

			$(el1).animate({opacity: 'show'}, "fast", function(){
				$(el1).animate({ left: 0}, "normal" );
			});
		}
	}

});

/* exten jquery function */
function clean_username (username) {
	username = username.toLowerCase();
	return (username || "").replace(/\s/g, "" );
}

function clean_whitespace( text ) { // remove all space
	return (text || "").replace(/\s/g, "" );
}

function clean_url( url ) { // add url protocal
	if(url) {
		var regexp = /(ftp|http|https):\/\/?/;
		if (!regexp.test(url)) {
			url = "http://"+url;
		}
	}

	return (url || "").replace(/\s/g, "" );
}

function clean_email( email ) {
	email = email.toLowerCase();
	return (email || "").replace(/\s/g, "" );
}

function key_digit(e) {
	var KeyCode = (e.keyCode) ? e.keyCode : e.which;
	var CharCode = (e.charCode) ? e.charCode : 0;
	CharCode = (BrowserDetect.browser=="Explorer") ? -1 : CharCode;
	return ((KeyCode == 8) // backspace
		|| (KeyCode == 9) // tab
		|| (KeyCode == 37) // left arrow
		|| (KeyCode == 39) // right arrow
		|| ((KeyCode == 46) && (CharCode == 0)) // delete
		|| (CharCode == 0)
		|| ((KeyCode > 47) && (KeyCode < 58)) // 0 - 9
	);
}

function FormatCurrency(num) {
	//alert("currency format");
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	//eturn (((sign)?'':'-') + '$' + num + '.' + cents);
	return (((sign)?'':'-') + num);
}

function validateField(field) {
	var error = false;

	// remove whitespace
	$(field).val( jQuery.trim( $(field).val() ) );

	// username field
	if ( $(field).hasClass("username") ) {
		$(field).val( clean_username( $(field).val() ) );
	}
	// email field
	if ( $(field).hasClass("email") ) {
		$(field).val( clean_email( $(field).val() ) );
	}
	// url field
	if ( $(field).hasClass("url") ) {
		$(field).val( clean_email( $(field).val() ) );
	}

	// required fields
	if ($(field).attr("class").indexOf("required") != -1) {
		if (!$(field).val().length)
			error = true;
	}
	// numeric fields
	if ($(field).val().length && $(field).hasClass("numeric") ) {
		if (!/^[0-9]*$/.test($(field).val()))
			error = true;
	}
	// emails
	if ($(field).val().length && $(field).hasClass("email") ) {
		if (!/^[a-zA-Z0-9]{1}([\._a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+){1,3}$/.test($(field).val()))
			error = true;
	}
	// url
	if ($(field).val().length && $(field).hasClass("url") ) {
		if (!/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test($(field).val()))
			error = true;
	}

	if (error) {
		$(field).addClass("focus");
	} else {
		$(field).removeClass("focus");
	}

	return !error;
}

//
function validUsername(value) {
	try {
		var rs = (/^[a-zA-Z0-9]{1}([a-zA-Z0-9]|_){5,19}$/.test(value));
		//var rs = (/^[a-zA-Z0-9]{1}([a-zA-Z0-9]|_|-|@|\.){4,18}[a-zA-Z0-9]{1}$/.test(value));
		//var rs = (/^[a-zA-Z0-9]{5,20}$/.test(value));
		return rs;
	} catch (e) {}
	return false;
}

function validPhone(value) {
	try {
		var rs_tel = (/^[0]{1}[0-79]{1}[0-9]{7}$/.test(value));
		var rs_mobile = (/^[0]{1}[8]{1}[0-9]{8}$/.test(value));
		return (rs_tel || rs_mobile);
	} catch (e) {}
	return false;
}


$(document).ready(function(){

	// Global Element


	if ( $("div#footerCoin").length > 0 ) {
		$("div#footerCoin").flash({
				src: "flash/text-footer.swf",
				width: 630, height: 40,
				wmode: "transparent", menu: "false",
				flashvars: { file: "" }
			}, { version: 8 }
		);
	}

	//MENU FLASH
	$("div#Wrapper div.flashmenu").each(function(){
		var meta = $(this).metadata();
		$(this).flash({
			src: meta.swf, width: meta.width, height: meta.height,
			wmode: "transparent", menu: "false",
			flashvars: { title: meta.flashvars.title, page: meta.flashvars.page }
		});
	});

	// Load Inline Calendar
	if ( $('div#displayCalendar').length > 0 ) $(this).loadCalendar('','',$("input#m").val());


	$("#flashbanner").each(function(){
			var meta = $(this).metadata();
			$(this).flash({
				src: meta.swf, width: meta.width, height: meta.height,
				wmode: "transparent", menu: "false"
			});
	});

});


