function assignDefaultVal(elId, msg, onblur) {
	var el, elVal, theMsg;

	el = typeof elId=='object'? elId:$('#'+elId)[0];
	el.value = jQuery.trim(el.value);
	if(el.value.length) {
		elVal = el.value.toLowerCase();
		theMsg = msg.toLowerCase();
		if(theMsg.match(elVal) || elVal.match(theMsg)) {
			el.value = onblur? msg:'';
		}
	} else {
		el.value = onblur? msg:'';
	}
}
function submitTellFriend(formId, msgId, cid) {
	var fm, el, msg;
	fm = $('#'+ formId)[0];
	//trim all input text
	jQuery.each($('#'+formId+' :text'), function(i,el) {
		el.value = jQuery.trim(el.value);
	});
	//trim all textarea
	jQuery.each($('#'+formId+' textarea'), function(i,el) {
		el.value = jQuery.trim(el.value);
	});
	//check name
	el = fm.name;
	msg = 'Name is empty.';
	if(!el.value) {
		$('#'+msgId).html(msg);
		el.focus();
		return false;
	}
	//check email
	el = fm.email;
	msg = 'Email is empty.';
	assignDefaultVal(el, $('#fwf_emailMsg').html(), false);
	if(el.value) {
		var strEmails, emails, invEmails;
		strEmails = '';
		invEmails = [];
		emails = el.value.split(',');

		if(emails.length>0) {
			for (i in emails) {
				emails[i] = jQuery.trim(emails[i]);
				if(emails[i]) {
					strEmails += strEmails? ', '+emails[i]:emails[i];
					if(!isEmail(emails[i])) {
						invEmails[invEmails.length] = emails[i];
					}
				}
			}

			//assign email(s) w/o empty str
			el.value = strEmails;
			if(!strEmails) {
				//msg = 'Email is empty.';
				$('#'+msgId).html(msg);
				el.focus();
				return false;
			}

			msg = '';
			if(invEmails.length>0) {
				for (i in invEmails) {
					msg += msg? ', '+invEmails[i]:invEmails[i];
				}

				msg += invEmails.length>1? ' are not valid email':' is not valid email';
				$('#'+msgId).html(msg);
				el.focus();
				return false;
			}
		} else {
			$('#'+msgId).html(msg);
			el.focus();
			return false;
		}
	} else {
		$('#'+msgId).html(msg);
		el.focus();
		return false;
	}
	//check security code
	el = fm.captcha;
	msg = 'Security code is empty.';
	if(el.value) {
		msg = 'Security code is invalid.';
		if(el.value.length!=4) {
			$('#'+msgId).html(msg);
			el.focus();
			return false;
		}
	} else {
		$('#'+msgId).html(msg);
		el.focus();
		return false;
	}

	//submit form
	$.ajax({
		type: "POST",
		url: '/ajax/tellfriends/'+cid+'/',
		data: $('#'+ formId).serialize(),
		dataType: "html",
		beforeSend: function() {
			$('#'+msgId).html('Submitting ...');
		},
		error: function() {
			$('#'+msgId).html('Submit failed, please try again.');
		},
		success: function(resp) {
			if(resp && msgId && $('#'+msgId).length) {
				if(resp.match('successful')) {
					fm.email.value='';
				}

				fm.captcha.value='';
				$('#'+msgId).html(resp);
			}
		}
	});
	return false;
}
function trails_fwd(msgid) {
	var fm = document.trailsfwd;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.email;
	msg = "Email is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.msg;
	msg = "Message is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	return true;
}
function submitlandmark(msgid) {
	var fm = document.submitlandmarkform;
	var elm;
	var msg='';

	if(fm.hasFile.value==-1) {
		msg = "Your form will not submit while the image is uploading.\nplease be patient.";
		alert(msg);
		return false;
	}

	$('#'+msgid).html('');
	elm = fm.landmark;
	msg = "Landmark is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.address;
	msg = "Address is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.desc;
	msg = "Description is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	$('#'+msgid).html('Submitting ...');
	download('/ajax/submitlandmark/',$("#submitlandmarkform").serialize(),msgid);
	fm.landmark.value="";
	fm.desc.value="";
	fm.address.value="";

	fm.hasFile.value=0;
	fm.fkey.value="";
	$('#upfile_con').html('');
	$('#landmarkImg').val('');
	$('#upfile_con').addClass('hide');
	$('#file_con').removeClass('hide');
	$('#landmarkImg').attr('disabled', false);

	return false;
}
function changepass(msgid) {
	var fm = document.changepassform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.newpass;
	msg = "Password is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Password length must more than 6 characters.";
	if(elm.value.length<6) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.newpass2;
	msg = "Re-Type your Password";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "No match for password";
	if(fm.newpass.value!=fm.newpass2.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	$('#'+msgid).html('Submitting ...');
	downloadjs('/ajax/changepass/',$("#changepassform").serialize());
	fm.newpass.value="";
	fm.newpass2.value="";
	return false;
}
function editprofile(msgid) {
	var fm = document.editprofileform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.name;
	msg = "Name is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.contact;
	msg = "Contact is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	return true;
}
function registration(msgid) {
	var fm = document.regform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.name;
	msg = "Name is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.email;
	msg = "Email is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Email invalid.";
	if(!isEmail(elm.value)) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.contact;
	msg = "Contact is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.password;
	msg = "Password is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Password length must more than 6 characters.";
	if(elm.value.length<6) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.password2;
	msg = "Re-Type your Password";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "No match for password";
	if(fm.password.value!=fm.password2.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	$('#'+msgid).html('Submitting ...');
	$('#regform').slideUp();
	downloadjs('/ajax/registration/',$("#regform").serialize());
	return false;
}
function forgotpass(msgid) {
	var fm = document.passwordform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);
	elm = fm.email;
	msg = "Email is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Email invalid.";
	if(!isEmail(elm.value)) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	$('#'+msgid).html('Loading ...');
	downloadjs('/ajax/forgotpass/',$("#passwordform").serialize());
	return false;
}
function sendfeedback(msgid) {
	var fm = document.feedbackform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.name;
	msg = "Name is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.email;
	msg = "Email is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Email invalid.";
	if(!isEmail(elm.value)) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.feedback;
	msg = "Feedback is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	$('#'+msgid).html('Loading ...');
	download('/ajax/feedback/',$("#feedbackform").serialize(),"feedbackformdiv");
	return false;
}
function dosearch() {
	var opt = 'keyword';
	if(document.searchform.stype.length>1 && document.searchform.stype[1].checked) {
		opt = document.searchform.stype[1].value;
	}
	if(document.searchform.stype.length>2 && document.searchform.stype[2].checked) {
		opt = document.searchform.stype[2].value;
	}
	if(document.searchform.stype.length>3 && document.searchform.stype[3].checked) {
		opt = document.searchform.stype[3].value;
	}
	if(document.searchform.stype.length>4 && document.searchform.stype[4].checked) {
		opt = document.searchform.stype[4].value;
	}
	document.searchform.action="/search/"+opt+"/";
	//document.location = '/search/'+opt+'/'+escape(document.searchform.keyword.value);
	return true;
}
function dologin(msgid) {
	var fm = document.loginform
	var elm;
	var msg='';
	$('#'+msgid).html(msg);
	elm = fm.email;
	msg = "Email is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Email invalid.";
	if(!isEmail(elm.value)) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.password;
	msg = "Password is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	downloadjs('/ajax/login/',$("#loginform").serialize());
	return false;
}
function postTrailsTestimonial(cid,msgid) {
	if(!cid || !msgid) {
		return;
	}
	var fm = document.trails_testimonialform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.msg;
	msg = "Testimonial is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.captcha;
	msg = "Security code is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Security code invalid.";
	if(elm.value.length!=4) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	download('/ajax/trails_testimonial/'+cid+'/',$('#trails_testimonialform').serialize(),'trails_testimonial');
}
function postMystoryComments(cid,msgid) {
	if(!cid || !msgid) {
		return;
	}
	var fm = document.mystory_commentsform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.msg;
	msg = "Comments is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.captcha;
	msg = "Security code is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Security code invalid.";
	if(elm.value.length!=4) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	download('/ajax/mystory_comments/'+cid+'/',$('#mystory_commentsform').serialize(),'mystory_comments');
}
function postTrailsComments(cid,msgid) {
	if(!cid || !msgid) {
		return;
	}
	var fm = document.trails_commentsform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.msg;
	msg = "Comments is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.captcha;
	msg = "Security code is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Security code invalid.";
	if(elm.value.length!=4) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	download('/ajax/trails_comments/'+cid+'/',$('#trails_commentsform').serialize(),'trails_comments');
}
function postTestimonial(cid,msgid) {
	if(!cid || !msgid) {
		return;
	}
	var fm = document.testimonialform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.msg;
	msg = "Testimonial is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.captcha;
	msg = "Security code is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Security code invalid.";
	if(elm.value.length!=4) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	download('/ajax/testimonial/'+cid+'/',$('#testimonialform').serialize(),'testimonial');
}
function postComments(cid,msgid) {
	if(!cid || !msgid) {
		return;
	}
	var fm = document.commentsform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.msg;
	msg = "Comments is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.captcha;
	msg = "Security code is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	msg = "Security code invalid.";
	if(elm.value.length!=4) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	download('/ajax/comments/'+cid+'/',$('#commentsform').serialize(),'comments');
}
function replyTopic(msgid) {
	if(!msgid) {
		return false;
	}
	var fm = document.forumform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.msg;
	msg = "Content is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.captcha;
	msg = "Security code is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	return true;
}
function postTopic(msgid) {
	if(!msgid) {
		return false;
	}
	var fm = document.forumform;
	var elm;
	var msg='';
	$('#'+msgid).html(msg);

	elm = fm.title;
	msg = "Title is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.msg;
	msg = "Content is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	elm = fm.captcha;
	msg = "Security code is empty.";
	if(!elm.value) {
		$('#'+msgid).html(msg);
		elm.focus();
		return false;
	}
	return true;
}
function getRandomNumber() {
	return Math.ceil(10000*Math.random());
}
function downloadjs(url,data) {
	if(!url) {
		return;
	}
	// do search here
	$.ajax({
		type: "POST",
		url: url,
		data: data,
		dataType: "script"
	})
}
function download(url, data, target, parent, options) {
	if(!url) {
		return;
	}

	if(typeof(tpl_dir)!='undefined') {
		url += (url.indexOf('?')==-1)? '?':'&';
		url = url + 'tpl_dir=' + tpl_dir;
	}

	var el;
	if(target) {
		if(parent) {
			el = $('#'+target).parent();
		} else {
			el = $('#'+target);
		}
	}

	if(typeof(data)=='undefined' || data==null) {
		data = {};
	}

	if(typeof(options)!='object') {
		options = {};
	}

	if(typeof(options.loadOptObj)!='object') {
		options.loadOptObj = {};
	}

	options = jQuery.extend(true, {
		ajaxAct: 'post',//post, get
		dataType: 'html',//html, xml, json, jsonp, script, text
		val_to_target: true,
		cache_container: '_default',
		cache_id: url + '_' + jQuery.param(data) + '_' + target + '_' + parent,
		useCache: false,
		useLoading: false,
		loadOptObj: {
			element: null,//id of loading div
			align: 'top-left', //top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
			pulse: 'working error',//working, error, fade, ellipsis, type (separate multiple pulse effects with spaces)
			mask: false,
			img: null,
			text: 'Loading...',
			onAjax: undefined,
			delay: 0,
			max: 0,
			img_size: 'small' //'big', 'small', custom
		},
		callback: function(){} /* Called when ajax is loaded*/
	}, options);

	if(!el || el==null || !el.length) {
		if(options.val_to_target) {
			alert('Target element undefined.');
			return;
		}
	}

	if(options.useCache) {
		//options.useCache = true;
		if(typeof(__ajaxCache)=='undefined') {
			$('<script type="text/javascript">var __ajaxCache;</script>').appendTo($('body'));
			__ajaxCache={};
		}

		if(!__ajaxCache[options.cache_container]) {
			__ajaxCache[options.cache_container]={};
		}

		if(__ajaxCache[options.cache_container][options.cache_id]) {
			if(options.val_to_target) {
				el.html(__ajaxCache[options.cache_container][options.cache_id]['content']);
			}
			if(typeof(options.callback)=='function') {
				setTimeout(function(){options.callback(__ajaxCache[options.cache_container][options.cache_id]['content'])}, 50);
			}
			return;
		}
	}

	options.useLoading = typeof(options.useLoading)=='boolean'? options.useLoading:false;
	if(options.useLoading) {
		var loadOptObj = typeof(options.loadOptObj)=='object'? options.loadOptObj:{};
		if(loadOptObj.img_size!='custom') {
			loadOptObj.img = loadOptObj.img_size=='big'?
				"/_theme/_default/ajax-loader.gif":
				"/_theme/_default/ajax-loader-small.gif";
		}

		if(loadOptObj.element==null && loadOptObj.mask==false) {
			options.useLoading = false;
		} else if(typeof(loadOptObj.element)=='string' && loadOptObj.element) {
			loadOptObj.element = '#'+loadOptObj.element;
			if(!$(loadOptObj.element).length) {
				options.useLoading = false;
			}
		}
	}

	// do search here
	$.ajax({
		type: options.ajaxAct,
		url: url,
		data: data,
		dataType: options.dataType,
		beforeSend: function() {
			if(options.useLoading) {
				ajaxLoading(loadOptObj, true);
			}
		},
		error: function() {
			if(options.useLoading) {
				ajaxLoading(loadOptObj, false);
			}
		},
		success: function(msg) {
			var r;
			r = {content: msg};
			if(options.useLoading) {
				ajaxLoading(loadOptObj, false);
			}

			if(options.val_to_target) {
				el.html(r.content);
			}

			//set cache
			if(options.useCache) {
				__ajaxCache[options.cache_container][options.cache_id] = r;
			}

			//callback
			if(typeof(options.callback)=='function') {
				setTimeout(function(){options.callback(r.content)}, 50);
			}
		}
	});
}
function ajaxLoading(optObj, open) {
	open = typeof(open)=='boolean'? open:false;
	if(optObj.element==null && optObj.mask==true) {
		$.loading(open, optObj);
	} else if(typeof(optObj.element)=='string') {
		$(optObj.element).loading(open, optObj);
	}
}
function getMaxZIndex(increment) {
	increment = typeof(increment)=='number'? increment:0;
	var cur=0, zmax=0;
	$('*').each(function(){
		cur = $(this).css('zIndex')=='auto'? '':parseInt($(this).css('zIndex'));
		if(cur) {
			(cur>zmax)? zmax=cur:'';
		}
	});
	return zmax+increment;
}
function trim(s) {
    var l=0; var r=s.length -1;
    while(l < s.length && s[l] == ' ') {
		l++;
	}
    while(r > l && s[r] == ' ') {
		r-=1;
	}
    return s.substring(l, r+1);
}
function refresh_window() {
	//document.location='./';
	//document.location='index.php';
	//document.location=document.location;
	window.location.reload();
}
function isEmail(email) {
  if(!email)
    return false;
  //var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  var filter  = /^[a-z0-9]+((\.|-|_)[a-z0-9]+)*@[a-z0-9]+((\.|-|_)[a-z0-9]+)*(\.[a-z]{2,4})$/i;
  return filter.test(email);
}
function isNric(nric) {
	if(typeof nric!='string' || nric.length!=9) {
		return false;
	}
	var head, tail, body, charRegex, numRegex;
	nric = nric.toUpperCase();
	head = nric.charAt(0);
	tail = nric.charAt(nric.length-1);
	body = nric.substr(1,7);
	charRegex = /[A-Z]/;
	numRegex = /[0-9]{7}/;
	return (head.match(charRegex) && tail.match(charRegex) && body.match(numRegex));
}
function display_msg(el, msgid, msg) {
	if(typeof(msgid)=='string' && msgid && $("#"+msgid).length) {
		$("#"+msgid).html(msg);
	}
	if(typeof el=='object') {
		el.focus();
	}
	return false;
}
function displayCountWords(val, dispId) {
	var count = countWords(val);
	var msg = 'Words: ' + count;
	$('#'+dispId).text(msg);
}
function countWords(val) {
	var fullStr = typeof(val)=='string'? val:'';
	fullStr = fullStr + " ";
	if (fullStr.length < 2) {
		return 0;
	}
	//var rExp = /^[^A-Za-z0-9'"]+/gi;
	var rExp = /[^A-Za-z0-9'"\-\s]+/gi;
	fullStr = fullStr.replace(rExp, "");
	rExp = /[^A-Za-z0-9'"]+/gi;
	fullStr = fullStr.replace(rExp, " ");
	var splitString = fullStr.split(" ");
	var word_count = splitString.length -1;
	return word_count;
}
function showLoading() {
	$('#loading').removeClass('hide');
}
function hideLoading() {
	$('#loading').addClass('hide');
}
function getUrlVars(url){
	var vars = [], hash;
	if(!url) {
		url = window.location.href;
	}
	hashes = url.slice(url.indexOf('?') + 1).split('&');
	for(var i = 0; i < hashes.length; i++){
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		var text = hash[1];
	text = unescape(text);
		vars[hash[0]] = text;
	}
	return vars;
}
function getUrlVarsValue(url){
	var vars={}, hash, text, hashes;
	if(!url) {
		url = window.location.href;
	}

	if(url.indexOf('?')>0 || url.indexOf('&')>0) {
		hashes = url.slice(url.indexOf('?') + 1).split('&');
		for(var i=0;i<hashes.length;i++){
			hash = hashes[i].split('=');
			if(hash[1]) {
				text = unescape(hash[1]);
			} else {
				text = '';
			}
			vars[hash[0]] = text;
		}
	}
	return vars;
}
function popup(url) {
	$('#form_popup_iframe').attr('src',url);$('#form_popup').removeClass('hide');
}
function adjustframe(frameid,height) {
	if(!frameid) {
		return;
	}
	if(height && window.opera) {
		$('#'+frameid).css('height',height);
	} else {
		dyniframesize(frameid);
	}
}
function dyniframesize(frameid){
	dyniframe = document.getElementById(frameid);
	if (dyniframe) {
		if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) {
			dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
		} else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) {
			dyniframe.height = dyniframe.Document.body.scrollHeight;
		}
		//alert(dyniframe.height);
	}
}
function updateheight(frameid) {
	if(!frameid) {
		frameid='iframe';
	}
  if(top != self) {
    //var h = $(document).height() + 32;
    //var h = $(document).height();
    var h = $("body").height() + 16;
    window.parent.adjustframe(frameid,h+'px');
  }
}
function showModalManualBox(to_url, el_id, cacheID, nyroModalOption) {
	cacheID = (typeof(cacheID)=='string' && cacheID)? cacheID:escape(to_url);

	if(typeof($.fn.nyroModal)=='undefined') {
		return false;
	}

	if(typeof(nyroModalOption)!='object') {
		nyroModalOption = {};
	}

	download(to_url, '', el_id, false,
		{
			cache_container: el_id+'_container',
			cache_id: el_id+'_'+cacheID,
			callback: function(){
				$.nyroModalManual(jQuery.extend(
					{title: ''},
					nyroModalOption,
					{url:'#'+el_id, content:null}
				));
			}
		}
	);
	return false;
	//e.preventDefault();
}
function getArchiveList(id, elId, loadId) {
	if(!id || !elId) {
		return;
	}
	var to_url = '/ajax/get_archive/'+id+'/?json=1';
	var ajaxObj = {
		val_to_target: false,
		callback: function(r) {
			if(r) {
				r = eval('(' + r + ')');
				var strArr=[], strObj={};
				var i, l, j, l2, _r;
				var _title;

				l=r.length;
				for(i=0;i<l;i++) {
					l2 = r[i].length;
					for(j=0;j<l2;j++) {
						_r = r[i][j];
						if(i==0) {
							strArr.push('<div id="'+_r.id+'">');
							strArr.push('<div>');
							if(_r.staticpage_id!=0) {
								_title = _r.title.replace(/[^\w]/gi, '_');
								//_title = escape(_r.title);
								strArr.push('<a href="/content/'+_r.id+'/'+_title+'.html">');
								strArr.push(_r.title);
								strArr.push('</a>');
							} else {
								strArr.push(_r.title);
							}
							strArr.push('</div>');
							strArr.push('</div>');
						} else {
							if(!strObj[_r.parent_id]) {
								strObj[_r.parent_id] = [];
							}

							strObj[_r.parent_id].push('<li id="'+_r.id+'"');
							strObj[_r.parent_id].push('<div>');
							//if(_r.staticpage_id!=0) {
								_title = _r.title.replace(/[^\w]/gi, '_');
								//_title = escape(_r.title);
								strObj[_r.parent_id].push('<a href="/content/'+_r.id+'/'+_title+'.html">');
								strObj[_r.parent_id].push(_r.title);
								strObj[_r.parent_id].push('</a>');
							//} else {
							//	strObj[_r.parent_id].push(_r.title);
							//}
							strObj[_r.parent_id].push('</div>');
							strObj[_r.parent_id].push('</li>');
						}
					}
				}

				if(strArr.length>0) {
					$('#'+elId).append(strArr.join(''));
				}

				if(strObj) {
					for(var i in strObj) {
						_r = strObj[i];
						if($('#'+i).length) {
							$('#'+i).children('div').eq(0).append(' <small><a href="#exp_col" title="Click to expand the block">[+]</a>');
							$('#'+i).append(
								'<ul style="display:none">' + _r.join('') + '</ul>'
							);
						}
					}
				}

				$('a[href="#exp_col"]').toggle(
					function(){
						$(this).html('[-]').attr('title', 'Click to collapse the block');
						$(this).parents('div').eq(0).next().show();
					},
					function(){
						$(this).html('[+]').attr('title', 'Click to expand the block');
						$(this).parents('div').eq(0).next().hide();
					}
				);
			} else {
				$('#'+elId).html('Record not found.');
			}
		}
	};
	if(loadId) {
		 ajaxObj['useLoading'] = true;
		 ajaxObj['loadOptObj'] = {
			'id':loadId,
			'img_size':'small',
			'img_display':'inline'
		 };
	}
	download(to_url, '', elId, false, ajaxObj);
}
function bodyUnloadFn() {
	if(typeof(google)!='undefined') {
		GUnload();
	}
}
// Array.prototype.in_array = function(v) {
	// for(var i=0;i<this.length;i++) {
		// if(this[i]==v) {
			// return true;
		// }
	// }
	// return false;
// }
$(document).ready(function(){
	updateheight();

	var ext_src=[];
	ext_src.push('<script src="/_include/jquery.loading.js" type="text/javascript" charset="utf-8"></script>');
	ext_src.push('<link rel="stylesheet" href="/_style/jquery.loading.css" type="text/css" media="screen" charset="utf-8" />');
	$('head').append(ext_src.join(''));
});