/* Scripts for PurpleAsia version 1.0
 * Developed by anhhtt@purpleasia.com 
 * PurpleAsia Digital
 */
 var imgsPath   = './addons/default/themes/purpleasia2011/images/';
 var loaderPath = imgsPath + 'loader/';
 var pa = {
    _iOSdevice: 1,
    _defaultTitle: 'PurpleAsia - Strategic Brand Consulting and Design',
    boxPos: 0,
    init: function(){
        jQuery('li.' + vars.cls_menu).hover(
            function(){ jQuery(this).css({color: vars.color_hover});},
            function(){
                var tmpIndex = jQuery('li.' + vars.cls_menu).index(this);
                if(!(utils.isCurrentMenu(tmpIndex)))    jQuery(this).css({color: vars.color_a});                        
            }   
        ).click(function(){
			contact.clear(); 
            vars.lastNewsID = 0; 
			var index = jQuery('li.' + vars.cls_menu).index(this);
			slider.changePage(parseInt(index));
            var hRef = (jQuery(this).attr('lang')).replace('#','');
            utils.updateWindowUrl(hRef);
            utils.updateTitleTag(hRef);
        });    
        jQuery('img.default_flash_menu').css({'cursor':'pointer'}).click(function(){
            callHref(jQuery(this).attr('name'));
        });
        jQuery('a.to_portfolio').bind('click',function(){slider.changePage(2);});
    },checkState: function(){
        var cur_url = document.URL ;
        if(cur_url ==  pageUrls.base || (cur_url == pageUrls.base + '#' ))
        {
            //jQuery.colorbox({href:"newyear_card"});
            //jQuery('#cboxClose').click(function()
            //{
                jQuery('div#slash').removeClass('hidden');
                setTimeout("doSplashAnimate()",500);
                setTimeout("preparePortal()",8000);    
            //});    
        }else{  
            slider.checkPage(json_menu); 
        }      
    },prepbackToHome: function(){
        po.toggleEmailLink(3);
        jQuery('div#padding-intro-menu').slideDown(100,function(){
            jQuery('div#slash').fadeIn(500, function(){
                jQuery(this).removeClass('hidden'); 
                utils.updateWindowUrl('');    
                utils.updateTitleTag(0); // Update title tag
                setTimeout('pa.backToHome()',500);
            });  
        });
    },backToHome: function(){
        pa.rePositionIntro();
        jQuery('div#padding-intro-menu').slideUp(1000);
  		jQuery('img#logo').fadeIn();
  		jQuery('img#making_brand').attr('src',pageUrls.base + 'addons/default/themes/purpleasia2011/images/introText.png').fadeIn();
  		jQuery('div#slash').removeClass('hidden');    
    },doDropDot: function(i){
        if(!utils.checkIEbrowser()){
            if(parseInt(pa._iOSdevice) == 1){
                initWorld(i);    
            }
        }
    },callHref: function(hRef){
        var _href = hRef.replace('#','');
        utils.updateWindowUrl(_href);        
        slider.checkPage(json_menu);
        var _display = jQuery('div#slash').css('display');
        if(_display != 'none'){slider.show();}
        utils.updateTitleTag(_href);                 
    },rePositionIntro: function(){
        jQuery('div#box').css({'top': '12.3em'});
        jQuery('div#introTagline').css({'paddingLeft':'1.8em'});
    }
}
var pageUrls = {
    base: '',
	news: '',
    checkNews: '',
	newsLetter: '',
	meta: '',
	sendContactMail: '',
    portfolio: '',
    mapImage : '',
    themePath: '',
	introMenu: '',
    showNews: ''
};
var vars = {
	paneTarget: '',
	cls_cont: '',
	cls_menu: '',
	menustatus: '',
	color_a: '#696A6C',
	color_hover: '#B1005D',
    lastNewsID: 10,
    indexNewsDiv: 3,
    indexPortfolioDiv: 2,
	newsLetterSent: false
};
var slider = 
{
	_index: 0, 
	show: function(){
        jQuery("div#slash").fadeOut('slow',function(){
           	jQuery("div#paSlider").fadeIn('slow').removeClass('hidden');
            jQuery('div#paSlider').css({'visibility':'visible'});
        });
    },
	checkPage: function(json_menu){
        var array = (utils.currentWindowUrl()).split('/');
		var lastsegment = array[array.length-1].replace('#','');
        var isFound = false;    var toIndex;
        if(lastsegment != ''){
    		for(var index = 0; index < json_menu.length; index++){
    			if(json_menu[index] == lastsegment){
					isFound = true;
					toIndex = index;
					break;
				}
				
    		}
			if(isFound){
				slider.show();
				slider.changePage(toIndex);
			}
            var new_id;
            jQuery.post(pageUrls.checkNews,{newsSlug: lastsegment },
                function(data){
                   if(parseInt(data.id) > 0){
                        vars.lastNewsID = data.id;
						toIndex = 3;
						slider.show();
						slider.changePage(toIndex);
                   }
                },'json');              
        }
        
	},showPaSlider: function(){jQuery('div#paSlider').removeClass('hidden').css({'visibility':'visible'});    
    },changePage: function(index){  
        slider.show();
        po.resetDetailFrame();
        jQuery('.back').css({'visibility':'hidden'});
        tips.removeAll();
		contact.clear();
        slider.resetMenu();
        slider.setActiveMenu(index);
		var _time = 0;
		var ele = jQuery('div.'+ vars.cls_cont).eq(index);
		if(ele.attr('id') == 'portfolio'){
			document.getElementById('portfolioFrame').src = pageUrls.portfolio ;
			_time = 800;
            po.addEmailLink(); 
		}
		if(ele.attr('id') == 'news'){
            var news_id, menuClick;
            if(vars.lastNewsID == 0){
                news_id = 2 ;
                menuClick = true;
            }else{
                news_id = vars.lastNewsID ;
                menuClick = false ;
            }    
            news.readNews(pageUrls.showNews, news_id);		    
		}
		utils.resetSomeEl();
		jQuery.post( pageUrls.meta + '/' +(parseInt(index) + 1) ,
			 function(){},'json');
		utils.updateCurrentMenu(index);
		this._index = index;
        setTimeout('slider.doScroll()',_time);
        pa.doDropDot(index);  
              
	},setActiveMenu: function(index){jQuery('li.' + vars.cls_menu).eq(index).css({color: vars.color_hover});
    },resetMenu: function(){jQuery('li.' + vars.cls_menu).css({color: vars.color_a});
    },doScroll: function(){utils.scrollToIndex(this._index, vars.cls_cont, vars.paneTarget);}
 };
var utils = {
    updateTitleTag: function(str){
        if(str == 0){
            document.title = pa._defaultTitle;        
        }else{
            var _str = str.replace('-',' ');
            document.title = pa._defaultTitle + ' - '+ _str;    
        }
    },updateWindowUrl: function(uri){ 
        document.location.href = pageUrls.base + '#' + uri;
        /* Change sharelink */
        sharelink.updateAllEntry(pageUrls.base + '#' + uri);
    },currentWindowUrl : function() { return document.location.href;	
    },updateCurrentMenu: function(a){ jQuery("span#pa_content_i_clicked").text(a);   
    },isCurrentMenu: function(a){
        var cur = jQuery("span#pa_content_i_clicked").text();
    	if(parseInt(cur) == parseInt(a))
    		return true;
    	else
    		return false;
    },resetSomeEl: function(){ jQuery('div.error').fadeOut('slow');},
	coordinate: function(ele){
        var offset = ele.offset();
        return {'x': offset.left ,
                'y': offset.top};  
    },objSize: function(ele){ return {'height': ele.height(), 'width': ele.width() } ;
	},scrollToIndex: function(index,cls_cont,paneTarget){
        var ele = jQuery('.'+ cls_cont).eq(index);
        var tmp = ele.height() * index; 
        var offXet = ele.offset();
        paneTarget.scrollTo( {top : tmp, left: offXet.left}, 1000 );
    },
    scrollTop: function(element){
        var offset = element.offset();
        var _top = offset.top;
    	if(jQuery.browser.opera)
    		jQuery('html').animate({scrollTop: _top}, 1200);
    	else
    		jQuery('html,body').animate({scrollTop: _top}, 1200);
    },visibleById: function(a,ele){
        switch(status){
            case 0: jQuery('#'+ ele).css({'visibility':'visible'});  break;
            case 1: jQuery('#'+ ele).css({'visibility':'hidden'}); break;     
        }       
    },fadeById: function(status,ele){
        switch(status){
            case 0:     jQuery('#'+ ele).fadeIn('slow');     break;
            case 1:     jQuery('#'+ ele).fadeOut('slow');    break;     
        }
    },fadeByClass: function(status,ele){
        switch(status){
            case 0:     jQuery('.'+ ele).fadeIn('slow');     break;
            case 1:     jQuery('.'+ ele).fadeOut('slow');    break; 
        }
    },slideById: function(status,ele){
        switch(status){
            case 0:     jQuery('#'+ ele).slideDown('slow');     break;
            case 1:     jQuery('#'+ ele).slideUp('slow');    break; 
        }    
    },checkemail: function(strEmail){
		var testresults; 
		var filter	=	/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i ;
		if (filter.test(strEmail)){testresults=true;}
		else{testresults=false;}
		return (testresults);
	},unixtime: function(){
		var d = new Date; return parseInt(d.getTime() / 1000);
	},removeById: function(ele_id){        jQuery('#' + ele_id).remove();    
    },exLinkToSite: function(){
        jQuery('a.hyper_link').css({'cursor':'pointer'}).click(function(){  window.open('http://' + jQuery(this).text());    });
    },cacheImgs: function(imgs){
        if(imgs.constructor == Array){
            var _root  = vars.themePath ;
            var hidden = jQuery('body').append('<div id="img-cache" style="display:none/>').children('#img-cache');
            jQuery.each(imgs, function (i, val) {
              jQuery('<img/>').attr('src', _root + val).appendTo(hidden);
            });      
        }
    },checkIEbrowser: function(){
        var browserName=navigator.appName;  
        if (browserName=="Microsoft Internet Explorer") return true;
        else return false;
    },checkIphoneIPod: function(){
      if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)))
         return true;
      else
         return false;
    },checkIpad: function(){
      if((navigator.userAgent.match(/iPad/i))) return true; else return false;  
    },checkIOS: function(){
        if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || navigator.userAgent.match(/iPad/i))
            return true;
        else    return false;
    }
} ;
// Customize based on Sharethis 3rd service
var sharelink = {
    addNewEntry: function(service,url,btn){
         stWidget.addEntry({
                 "service":service,
                 "element":document.getElementById(btn),
                 "url": url,
                 "title":pa._defaultTitle,
                 "type":"chicklet",
                 "text":null,
                 "summary":"Share this link"
        });
    },resetAllEntry: function(){
        var ids = ['pa_facebook','pa_twitter','pa_linkedin','pa_yahoo','pa_gbuzz','pa_email'];
        for(var x = 0; x <= ids.length; x++){   
            jQuery('#'+ids[x]).empty();
        }
    },updateAllEntry: function(newUrl){
        sharelink.resetAllEntry();
        var entries = [{service: 'facebook', btnID: 'pa_facebook', url: newUrl},
                       {service: 'twitter', btnID: 'pa_twitter', url: newUrl},
                       {service: 'linkedin', btnID: 'pa_linkedin', url: newUrl},
                       {service: 'yahoo', btnID: 'pa_yahoo', url: newUrl},
                       {service: 'gbuzz', btnID: 'pa_gbuzz', url: newUrl},
                       {service: 'email', btnID: 'pa_email', url: newUrl}];
        for(var i = 0; i< entries.length ; i++){
            sharelink.addNewEntry(entries[i].service, entries[i].url,entries[i].btnID);    
        }
    }
};
var tips = {
	obj: null,
	defaultContent: 'This is PurpleAsia',
	_removeTime: 1500,
	_minus_x: 20,
    _minus_y: 15,
	_current: '',
	_opacity: 0.9,
    _autoHide: true,
    _contentType: 'text',
	create: function(content)
	{
		if(this.obj != null){
			var _pos 	= utils.coordinate(this.obj);
			var _size 	= utils.objSize(this.obj);
			var _top 	= _pos.y - (_size.height * 2) - this._minus_y;
			var _left	= _pos.x - this._minus_x;
			var _content = (content == 'undefined') ? this.defaultContent : content;
			this._current = 'tip' + utils.unixtime();
			var wrapper = jQuery('<div/>',{id : this._current})
			.css({'display':'block','position':'absolute','top':_top,'left':_left,'color':'#FFFFFF','display':'none','opacity':this._opacity
			}).addClass('tips');
            if(this._contentType == 'text'){wrapper.text(_content);}
            else{wrapper.html(_content);}
			jQuery('<div/>').addClass('tips-border').appendTo(wrapper);
			jQuery('<div/>').addClass('tips-arrow').appendTo(wrapper);
			wrapper.appendTo('body').fadeIn(700);
			if(this._autoHide == true)     setTimeout('tips.hide()',this._removeTime); 
		}else{
			return ;
		}	
	},hide: function(){	jQuery('#' + this._current).fadeOut(this._removeTime); setTimeout("tips.remove()",1000);	
    },remove: function(){jQuery('#' + this._current).empty().remove();}
    ,removeAll: function(){jQuery('div.tips').empty().remove();}
};

var newsLetter =
{
	_defaultText	: '',
	_selectorWrapper: 'div#newsLetterWrapper',
	_selectorInput	: 'input#txtNewsLetter',
	_selectorButton	: 'span.btnNewsLetter',
	_css_hover		: 'btnNewsLetter_hover',
	_loader 		: 'images/loader/contact-loader.gif',
    _last_tips_id   : 0,
	init: function(defaultText)
	{ 
		newsLetter._defaultText = defaultText;
		jQuery(newsLetter._selectorButton).hover(
            function(){jQuery(newsLetter._selectorButton).addClass(newsLetter._css_hover)},
		    function(){jQuery(newsLetter._selectorButton).removeClass(newsLetter._css_hover)}
		).click(function(){
            pa.doDropDot(vars.indexNewsDiv);
			tips.removeAll(); 
            tips._autoHide = true;
			var email = jQuery(newsLetter._selectorInput).val();
			if(utils.checkemail(email)){
                tips._opacity = 0.8;
                tips._autoHide = false;
                tips._contentType = 'html';
                tips.obj = jQuery(newsLetter._selectorInput);
                tips.create('<div>Please wait a moment...</div>') ;
                this._last_tips_id = tips._current;
                var _h1 = parseInt(jQuery('div#'+tips._current).height()) ;
				jQuery.post(pageUrls.newsLetter,{txtNewsLetterEmail: email},
					function(data){
					    var _msg;
						if(data.isSent && (data.error == null))
                        { 
                            _msg  = '<div>Thank you. Your registration is now complete.</div>';
                            _msg += '<div id="thankyou">Keep an eye on your inbox for more news and updates from PurpleAsia.</div>';                            
                            jQuery('div#'+tips._current+ ' div:first-child').html(_msg).css({'textAlign':'left','width': 235});
                            var _close = jQuery('<img/>',{src: imgsPath + 'close.png'}).addClass('tips-close').bind('click',function(){ tips.hide();});
                            jQuery('<div/>',{align: 'right'}).html(_close).insertAfter('div#thankyou');
							jQuery(newsLetter._selectorInput).val(newsLetter._defaultText);
                            var _h2 = parseInt(jQuery('div#'+tips._current).height());
                            var _offset = jQuery('div#'+tips._current).offset();
                            var _top = _offset.top - _h2;
                            jQuery('div#'+tips._current).css({'top': _top});
                        }
                    },'json');
			}else{tips.obj = jQuery(newsLetter._selectorInput);tips.create('Please enter your valid email.')	}
		});
		jQuery(newsLetter._selectorInput).blur(function(){
			if(jQuery(newsLetter._selectorInput).val() == '') jQuery(newsLetter._selectorInput).val(newsLetter._defaultText);
		}).focus(function(){ 	jQuery(newsLetter._selectorInput).val('');	});
	}
}

var news = {
	_selector: 'span.newsSidebar',
    loadNews : function(url,news_id,menuClick){
        menuClick = (menuClick == 'undefined') ? false : menuClick ;
        pa.doDropDot(vars.indexNewsDiv);
        jQuery.post(url, {newsid : news_id},
            function(data){
                if(data.strhtml != null){
                	jQuery('div.newsDetailInner').fadeOut('fast',function(){
						jQuery(this).fadeIn('normal').html(data.strhtml);
                        jQuery('#ndate').fadeOut('fast',function(){
                            jQuery(this).fadeIn('fast').text(data.date);
                        });
                    });
                    if(!menuClick){utils.updateWindowUrl(data.slug);}
                }
            },'json');            
    },readNews: function(url, news_id)
    {
        po.emptyPorfolio();
        jQuery.post(pageUrls.news, {newsid : news_id},
            function(data){
                if(data.strhtml != null) utils.updateWindowUrl(data.slug);},'json'); 
        document.getElementById('ifNewsContainer').src = url + '/' + news_id;
    },
	init: function(){
		jQuery(this._selector).hover(
			function(){ 
				jQuery(this).css({'color':'#808080'}); }
			,function(){    
				jQuery(this).css({'color':'#444444'});       
			}
		).click(function(){
			var news_id = (jQuery(this).attr('id')).replace('news_','');
            news.readNews(pageUrls.showNews, news_id);
		});
	}
};

/* PORTFORLIO */
var po = {
    _hover  : '',
    _thumb  : '',
    _urlDetail  : '',
    _urlLoadByCate  : '',
    _urlCheckNavi: '',
    _paneTarget: jQuery('#porfolioWrapper'),
    _cls_cont: 'portfolioChild',
    _defatulSortText: 'Sort By Discipline',
    resetDetailFrame: function(){}
    ,emptyPorfolio: function(){
        document.getElementById("portfolioFrame").src = '';
    },
    addEmailLink: function(){},
    removeEmailLink: function(){
        jQuery('div#po_contact_email').remove();           
    },toggleEmailLink: function(a){
      if (jQuery("#po_contact_email").length > 0){
        switch(a){
            case 0: 
                setTimeout(function(){
                    parent.document.getElementById("po_contact_email").style.display = "block";    
                },400);
                break;
            case 1: parent.document.getElementById("po_contact_email").style.display = "none";break; 
            case 3: 
                jQuery("div#po_contact_email").css({'visibility':'hidden'}); 
                setTimeout(function(){  jQuery("div#po_contact_email").remove();},100); 
                break;
        }
      }
    },initSortBar: function(){
    	jQuery('.sortBy').click(function(){
    		jQuery("#sortByContent").slideToggle("slow");
    		jQuery(this).toggleClass("active");
    	});
    },backToList: function(){
        var objFrame    =   document.getElementById("detailFrame");
        objFrame.src    = '';
        jQuery('.back').css({'visibility':'hidden'});
        utils.fadeByClass(0,'sort');
        var offset = jQuery('div#ListPort').offset();
        var _top = offset.top;
    	if(jQuery.browser.opera)
    		jQuery('html').animate({scrollTop: _top - 30}, 1200);
    	else
    		jQuery('html,body').animate({scrollTop: _top - 30}, 1200);
        utils.scrollToIndex(0,'port_content',jQuery('div#porfolioWrapper'));
        setTimeout('po.toggleEmailLink(0)',1400);  
    },preLoad : function(gal_id){
        var objFrame    =   document.getElementById("detailFrame");
        objFrame.src    = '';
        po.toggleEmailLink(1);
        utils.fadeByClass(1,'sort');
        utils.scrollToIndex(1,'port_content',jQuery('div#porfolioWrapper'));
	    id = parseInt(gal_id);
	    setTimeout('po.loadGallery(' + id + ')',500);
    },loadGallery: function(gal_id){
		jQuery("#sortByContent").slideUp();
        jQuery('.back').css({'visibility':'visible'});
        jQuery('.navigation').css({'visibility':'visible'});
        var objFrame    =   document.getElementById("detailFrame");
        objFrame.src    =   po._urlDetail + '/' + gal_id ;
    },
    loadGalByCateId: function(id){
        var sortText = jQuery('li#category_'+id+ ' a').text();
        jQuery('div.sortBy').text(sortText);
        jQuery('li.category').removeClass('current');
    	jQuery("li#category_"+id).addClass('current');
    	var cate_id = parseInt(id);
    	jQuery("input#category_i_clicked").val(cate_id);
    	jQuery.post( this._urlLoadByCate, 
                {category_id: cate_id},
                function(data){
                		jQuery('div#galList').fadeOut('slow',function(){
                    		jQuery(this).html('');
                    		jQuery(this).fadeIn('slow',function(){
                        		jQuery(this).html(data.strhtml);
                        		jQuery("div#sortByContent").slideToggle(250);
                    		});
                    	});          
                },'json');
    },showGallery: function(_navi){
        var _url = document.getElementById('detailFrame').src ;
        var array = _url.split('/');
        var _id = array[array.length-1];
        jQuery.post(po._urlCheckNavi,{gal_id: _id, navi: _navi},function(data){
            if(data.id){
                document.getElementById('detailFrame').src = po._urlDetail + '/' + parseInt(data.id);        
            }else{
                
            }    
        },'json');
    },rollOver: function(ele,status){
        var nrmal   = jQuery(ele).attr('name');
        var hover   = (jQuery(ele).attr('alt') == '' ) ? nrmal : (jQuery(ele).attr('alt'));
        var isHover = true;
        var newimg  = '';
        if(jQuery(ele).attr('alt') == ''){
            isHover = false;
            hover = nrmal;
        }else   hover = jQuery(ele).attr('alt');
            
        if(isHover && (status == 1)){
            newimg = this._hover + hover;   
            jQuery(ele).attr('src',newimg);
        }else if(status == 0){
            newimg = this._thumb + nrmal;
            jQuery(ele).attr('src',newimg);
        }    
    }
}; 
var map = {
  show  : function(){
    jQuery('<div/>', {id: 'exposeMask'})
    .css({
        'position'  : 'absolute',
        'top'       : '0px',
        'left'      : '0px',
        'backgroundColor' : 'rgb(0, 0, 0)',
        'width'     : jQuery(window).width() + 'px',
        'height'    : jQuery(window).height() + 'px',
        'display'   : 'none',
        'opacity'   : 0.8,
        'z-index'   : 9997
    }).appendTo('body').fadeIn('slow');
    var _top = (parseInt(jQuery(window).height()) - parseInt(480) )/2 + 'px';
    var _left = (parseInt(jQuery(window).width()) - parseInt(855) )/2 + 'px';
    jQuery('<div/>',{id : 'mapLarge'}).css({
        'backgroundColor': '#ffffff',
        'position'  : 'fixed',
        'z-index'   : 9998,
        'top'       : _top,
        'left'      : _left,
        'display'   : 'none',
        'width'     : '855px',
        'height'    : '480px',
        'border'    : '5px solid #ffffff'
    }).appendTo('body').fadeIn();
    jQuery('<img/>',{alt: 'PurpleAsia location map','src' : vars.mapImage}).appendTo('div#mapLarge');
    // Close button
    jQuery('<a/>',{href: 'javascript:map.close()'})
    .css({'display':'block','height':'20px', 'width':'20px'}).addClass('close').appendTo('div#mapLarge');
    jQuery('div#mapLarge').fadeIn();
  },close : function(){
    jQuery('div#mapLarge').fadeOut('fast',function(){    jQuery(this).remove();   });
    jQuery('div#exposeMask').fadeOut('fast',function(){  jQuery(this).remove();   });  
  }  
};
var contact = {
	loader: function(key){
		var tmp ;
		switch(key){
			case 'ct':
				tmp = 'contact-loader.gif';
				break;
			case 'pt':
				break;
			case 'ns':
				break;
		}
		return  "<img src='"+ loaderPath + tmp + "' class='loader' />";
	},hide: function(ele_id){
		jQuery("#"+ ele_id).fadeOut();
	},clear: function() {
		jQuery("input[name*='txtName']").val('');
		jQuery("input[name*='txtEmail']").val('');
		jQuery("textarea[name*='txtBody']").val('');
		contact.enquirySubject(0);
	},error: function(a){
        switch(a){
            case 'email':	return 'Please enter valid email address.';	break;
            case 'body':	return 'Please enter message from 10 to 300 characters.';	break;
            case 'name':	return 'Please enter name at least 5 characters.';	break;
        }
    },validate: function(ele_name){
        var obj 	= jQuery('#el_'+ele_name);		
        var _value  = obj.val();
        var errorObj = jQuery("#" + (obj.attr('name')));
        
        switch(ele_name){
            case 'txtEmail':
                var trueEmail = utils.checkemail(_value);
                if(trueEmail){	errorObj.slideUp(); return true;}
				else{errorObj.text(this.error('email')).css({'width' : obj.width()}).slideDown(); return false;}
                break;
            
            case 'txtBody':
                var bodyLen = _value.length;
                if(bodyLen < 10 || (bodyLen > 300)){
        			errorObj.text(contact.error('body')).css({'width' : obj.width()}).slideDown();	return false;
        		}else{	
        			errorObj.slideUp();	
                    return true;
				}
                break;
           case 'txtName':
                var nameLen = _value.length;
                if(nameLen < 5){
        			errorObj.text(contact.error('name')).css({'width' : obj.width()}).slideDown();
                    return false;
            	}else{	
                	errorObj.slideUp();
                    return true;
            	}
                break;
        }
    },sendmail: function(url)
    {
        var _email  = jQuery('input[name*="txtEmail"]').val(); 
		var _name	= jQuery('input[name*="txtName"]').val();
		var _body 	= jQuery('textarea[name*="txtBody"]').val();
		var _subject= jQuery('select#txtSubject option:selected').val();
        jQuery("div#ctError").html(contact.loader('ct') + "<span>message sending...</span>");
		jQuery.post(url,{ txtEmail   : _email , 
                     txtName    : _name, 
                     txtBody    : _body,
					 txtSubject : _subject
					 },
				function(data){
					if(!data.error){
						jQuery("div#ctError").fadeOut('normal',function(){
							jQuery(this).html('Thank you for your contact.').fadeIn('slow');
							contact.clear();
							setTimeout("contact.hide('ctError')",8000);
						});
					}
		      },'json');
    },init: function(){
        jQuery('#btnSend').click(function(){
            jQuery('div.error').fadeOut('slow');
    		var isOK = true;
            isOK = contact.validate('txtEmail');
            isOK = contact.validate('txtName');
            isOK = contact.validate('txtBody');
    		if(isOK)  contact.sendmail(pageUrls.sendContactMail);		
        });
		jQuery('a.ct_general_enquiry').css({'cursor': 'pointer'}).click(function(){   
		  slider.changePage(4);	contact.enquirySubject(0);	});
		jQuery('a.ct_winepad_enquiry').css({'cursor': 'pointer'}).click(function(){   
		  slider.changePage(4);	contact.enquirySubject(1);		});
		jQuery('a.ct_giftbook_enquiry').css({'cursor': 'pointer'}).click(function(){   
		  slider.changePage(4);	contact.enquirySubject(2);		});
    },enquirySubject: function(_en_index){jQuery('select#txtSubject option').eq(_en_index).attr('selected', 'selected');
    },clientEmail: function(_email, subject){
        var _subject = jQuery('select[name*="txtSubject"] option:nth-child(1)').text();
        if(subject == 'undefined')  _subject = subject;
        var mailto_link = 'mailto:'+ _email+'?subject='+ _subject;
        win = window.open(mailto_link,'tempWindow');
        if (win && win.open &&!win.closed) win.close();
    }
};  

