
function loadJs(paths, important)
{
	var important = important || false;

	if(!$.isArray(paths)) paths = new Array(paths);
	
	$.each(paths, function(key, data){
		var $el = $('head script').filter(function(){
			if(typeof $(this).attr('src') != 'undefined' && $(this).attr('src').match(new RegExp(data+"$", "i"))) return true;
			return false;
		});

		if($el.length == 0)
		{
			$('head').append('<script type="text/javascript" src="' + data + '"></script>');
		}
		else if(important == true)
		{
			document.write('<script type="text/javascript" src="' + data + '"></script>');
		}
	});
}

function loadCss(paths, important)
{
	var important = important || false;

	if(!$.isArray(paths)) paths = new Array(paths);
	
	$.each(paths, function(key, data){
		var $el = $('head link').filter(function(){
			if(typeof $(this).attr('href') != 'undefined' && $(this).attr('href').match(new RegExp(data+"$", "i"))) return true;
			return false;
		});
	
		if($el.length == 0)
		{
			$('head').append('<link type="text/css" rel="stylesheet" href="' + data + '" />');
		}
		else if(important == true)
		{
			document.write('<link type="text/css" rel="stylesheet" href="' + data + '" />');
		}
	});
}

//---- Global Message Box
var globalMsgTimeout;
var globalMsgHtml = '<div id="global_message" class="msg_box" style="position:fixed;top:0;z-index:9999;width:400px;display:none;"><div class="message info"></div></div>';

function showGlobalMsg(msg, msgType, autoHide)
{
	var msg = msg || null;
	var msgType = msgType || 'info';
	var autoHide = autoHide || false;
	
	if($('#global_message').length < 1)
	{
		var $globalMsgEl = $(globalMsgHtml).appendTo('body');
		$globalMsgEl.hover(function(){
			clearTimeout(globalMsgTimeout);
		}, function(){
			hideGlobalMsg();
		});
		
		var bodyWidth = $('body').innerWidth();
		var globalMsgWidth = $globalMsgEl.outerWidth();
		
		// Set center
		$globalMsgEl.css('left', ((bodyWidth/2) - (globalMsgWidth/2)) + 'px');
	}

	clearTimeout(globalMsgTimeout);

	if(msg != null)
	{
		$('#global_message .message:first').attr('class','message').addClass(msgType).html(msg);
	}
	
	$('#global_message').stop(true).show();
	
	if(autoHide == true) hideGlobalMsg();
}

function hideGlobalMsg(delay)
{
	var delay = delay || 5000;
	clearTimeout(globalMsgTimeout);
	globalMsgTimeout = setTimeout(function(){
		$('#global_message').hide();
	}, delay);
}
//---- End Global Message Box


function expandParentMenu(rootUl, aActivated)
{
	$(rootUl).find('> li').each(function(){
		var a = $(this).find(aActivated);
		a.addClass('activated');
		if(a.length > 0)
		{
			$(this).find('> ul').show();
		
			var parentCate = $(a).parent('li').parent('ul');
			while(parentCate.length > 0)
			{
				$(parentCate).show();
				$(parentCate).parent('li').find('a:first:first-child').addClass('activated');
				parentCate = $(parentCate).parent('li').parent('ul');
			}
			
			return false;
		}
	});
}

function setLinkToParent(el)
{
	$(el).filter(function(index){
		if(!$(this).hasEvent('click'))
			return true;
		else
			return false;
	}).click(function(e){
		e.preventDefault();

		var url;

		if($(this).attr('href').match(/^#/))
			url = window.parent.location.href.replace(/#+$/,'') + $(this).attr('href');
		else
			url = $(this).attr('href');
		
		if($(this).attr('target') == '_blank' || $(this).hasClass('_blank'))
		{
			window.open(url);
		}
		else
		{
			window.parent.location = url;
		}
	});
}

function addFormButtonClass()
{
	$(document).ready(function(){
		
		//--------- Change form link buttons to buttons
		
		/**
		 * a.submit_form	: onclick parent form submit
		 * a.reset_form		: onclick parent form reset
		 */
		$('form').each(function(){
			//------- Submit form button
			
			var form = $(this);
			
			$(this).find('input').keydown(function(e){
				if (window.event) keycode = window.event.keyCode;
				else if (e) keycode = e.which;

				if(keycode == 13)
				{
					e.preventDefault();
					$(form).submit();
				}
			});

			$(this).find('a.submit_form').click(function(e){
				e.preventDefault();
				
				var msg = $(this).attr('title') || '';

				if(!msg.match(/^\s*$/))
				{
					if($(this).hasClass('confirm'))
					{
						if(!confirm(msg)) return false;
					}
					else if($(this).hasClass('alert'))
					{
						alert(msg);
					}
				}

				var form_action = $(form).attr('action');
				
				if($(this).attr('href') && $(this).attr('href') != '#')
				{
					$(form).attr('action', $(this).attr('href'));
				}
				
				$(form).submit();
				
				$(form).attr('action', form_action);
			});
			//------- End Submit form button

			//------- Reset form button
			$(this).find('a.reset_form').click(function(e){
				e.preventDefault();
				clearForm($(form));
			});
			//------- End Reset form button
		});
		//--------- End Change form link buttons to buttons
		
	});
}

function clearForm(el)
{
    $(el).find(':input').each(function(){
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });
}


function setFormValue(objName, strValue, frmName){
	var frmName = frmName || null;
	if(frmName == null){
		var arrObj = document.getElementsByName(objName);
	}else{
		var arrObj = [document[frmName][objName]];
	}
	for(i=0;i<arrObj.length;i++){
		arrObjCheck = arrObj[i];
		if(arrObjCheck.type == "text" || arrObjCheck.type == "textarea" || arrObjCheck.type == "hidden"){ arrObjCheck.value = strValue;}
		if(arrObjCheck.type == "select-one") for(j=0;j<arrObjCheck.length;j++){ if(arrObjCheck.options[j].value == strValue){ arrObjCheck.options[j].selected = true;}else if(arrObjCheck.options[j].text == strValue){arrObjCheck.options[j].selected = true;}}
		if(arrObjCheck.type == "select-multiple") for(j=0;j<arrObjCheck.length;j++){ if(strValue.indexOf("|"+arrObjCheck.options[j].value+"|")  > -1){ arrObjCheck.options[j].selected = true;}else if(strValue.indexOf("|"+arrObjCheck.options[j].text+"|")  > -1){arrObjCheck.options[j].selected = true;}}
		if(arrObjCheck.type == "radio") if(arrObjCheck.value == strValue){ arrObjCheck.checked = true;}
		if(arrObjCheck.type == "checkbox") if(arrObjCheck.value == strValue){ arrObjCheck.checked = true;}
	}
}


function addSelectBoxTitle(){
	$(document).ready(function(){
		if($.browser.msie)
		{
			$("select").mouseover(function(){
				$(this).find("option").each(function(){
					$(this).attr('title', $(this).text());
				});
			});
		}
	});
}


function hideSelectBox()
{
	if($.browser.msie && $.browser.version.substr(0,1) < 7)
	{
		$('select').each(function(){
			if($(this).css('visibility') == 'inherit' || $(this).hasClass('hideSelectBox'))
			{
				$(this).css('visibility', 'hidden');
				$(this).addClass('hideSelectBox');
			}
		});
	}
}

function showSelectBox()
{
	if($.browser.msie && $.browser.version.substr(0,1) < 7)
	{
		$('select.hideSelectBox').css('visibility', 'visible');
	}
}

function imageMinToFit(selectorImg)
{
	$(selectorImg).each(function(){
		var maxWidth = $(this).parent().innerWidth();
		var maxHeight = $(this).parent().innerHeight();
		
		var imgWidth = $(this).width();
		var imgHeight = $(this).height();

		if(imgWidth < maxWidth && imgHeight < maxHeight)
		{
			$(this).css('width', maxWidth+'px');
			$(this).css('height', maxHeight+'px');
		}
	});
}


function addCarListEvent($carBlock, aSelector, addEventOnSuccess, callback)
{
	var addEventOnSuccess = addEventOnSuccess || false; // selector
	var callback = callback || false;

	$carBlock.find(aSelector).click(function(e){
		e.preventDefault();

		showGlobalMsg("โปรดรอซักครู่...", "info");
		
		$.get($(this).attr('href'), function(data){
			var $data = $('<div>' + data + '</div>');

			$carBlock.find('.listCar .recommend').html($data.find('.listCar .recommend').html());
			$carBlock.find('.listCar .latest').html($data.find('.listCar .latest').html());
			$carBlock.find('.page').html($data.find('.page').html());

			if(addEventOnSuccess != false)
			{
				addCarListEvent($carBlock, addEventOnSuccess, addEventOnSuccess, callback);
			}
			
			if(typeof callback == 'function')
			{
				callback();
			}
			
			hideGlobalMsg(1000);
			
			imageMinToFit($('.listCar .picCar img'));
			$('a._blank').attr('target', '_blank');
		})
	});
}
