jQuery("document").ready(init);

function init() {
    
    jQuery('img').each( function() {
      var img = jQuery(this);
      var a = img.parent('a');
        
      a.addClass('thickbox');
      /*
       * If the images are linked to the attachment page, change the link to the actual image file
       */
//      if(a.length > 0) {
//        var src = img.attr('src'); //http://dev.interexcel.co.za/tofo/wp-content/uploads/2011/10/IMG_2555-150x150.jpg
//        var href = a.attr('href'); //http://dev.interexcel.co.za/tofo/photo-gallery/img_2555/
//
//
//        if(href.charAt(href.length-1) === '/') {
//          var path = src.split('/');
//
//          var fullImgArr = href.split('/');
//          var fullImg = fullImgArr[fullImgArr.length-2];
//
//          //get the old extension        
//          var thumb_img = path[path.length-1];
//          var ext_arr = thumb_img.split('.');
//          var ext = ext_arr[ext_arr.length-1];
//          
//          var new_href = src.replace(thumb_img, fullImg+'.'+ext);
//
//          a.attr('href', new_href)
//        }
//      }
    })
    
    //create the datepicker
    
    var dates = jQuery( "#_arrival, #_departure" ).datepicker({
                        defaultDate: "",
                        changeMonth: true,
                        numberOfMonths: 3,
                        dateFormat: 'yy/mm/dd',
                        onSelect: function( selectedDate ) {
                                var option = this.id == "_arrival" ? "minDate" : "maxDate",
                                        instance = jQuery( this ).data( "datepicker" ),
                                        date = jQuery.datepicker.parseDate(
                                                instance.settings.dateFormat ||
                                                jQuery.datepicker._defaults.dateFormat,
                                                selectedDate, instance.settings );
                                dates.not( this ).datepicker( "option", option, date );
                        }
                });
    
    var itms = 0;
    //Make the tabs of the gallery display as numbers
    jQuery('div.panel_tabs ul li a').ready(function() {
        jQuery('div.panel_tabs ul li a').each(function(index) {
            jQuery(this).text(index+1);
            itms = index+1;
            
            var panelW = jQuery('div.panel_tabs ul li').outerWidth()*itms;
            
            jQuery('div.coda-nav.panel_tabs').width(panelW);
            
            var panelPos = jQuery('div.coda-nav.panel_tabs').position();
            var panelLeft = panelPos.left;
            var panelRight = panelPos.left+jQuery('div.coda-nav.panel_tabs').outerWidth() - 32;
            
            jQuery('div#izg-slider div.coda-nav-left a').css({left:panelLeft})
            jQuery('div#izg-slider div.coda-nav-right a').css({left:panelRight})
            
        })
    })
    
    
    
    ///Fixes menu bugs in IE7
	if(jQuery.browser.msie && jQuery.browser.version == '7.0' ) {
		//Check for ie7
			jQuery('#main-nav li').hover
				( 
				function() 
					{
						
						if(jQuery(this).children('ul.children').hasClass('remove')){
							jQuery(this).children('ul.children').css('top','40px');
							jQuery(this).children('ul.children li ul.children').css('top','0px');
							jQuery(this).children('ul.children').removeClass('remove');
						}
						if(jQuery(this).children('ul').hasClass('remove')){
							//jQuery(this).children('ul.children').css('top','-520px');
							//jQuery(this).children('ul.children').css('top','50px');
							jQuery(this).children('ul').removeClass('remove');
						}
					
					jQuery(this).addClass('sfhover');
					//alert('Added');	
					}, 
				function()
					{
					jQuery(this).removeClass('sfhover');
					//alert('Removed');	
					}
				);
			
		jQuery("#main-nav li").hover( function() {
			
					
		}, function() {
			jQuery(this).children('ul').addClass('remove');
			jQuery(this).children('ul').css('top','-999em');
			
		});
	} else {
		jQuery('#main-nav li').hover
				( 
				function() 
					{
					jQuery(this).addClass('sfhover');
					}, 
				function()
					{
					jQuery(this).removeClass('sfhover');	
					}
				);
	}
	///Fixes menu bugs in IE7 end

    jQuery("div.errors").hide();

    if (jQuery('div#content').outerHeight() > jQuery('div.sidebar-right').height() ) {
        jQuery('div.sidebar-right').height(jQuery('div#content').outerHeight()+100);
    }

}

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

function IsValidEmail(email){

	var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
	return filter.test(email);

}

function allowedChars(input_value){

	var aChars = '1234567890-+() ';
        
        num = false;
	for(i=0;i<input_value.length;i++)
            {
            if (aChars.indexOf(input_value.charAt(i)) != -1)
                {
                    num = true;
                }
            else
                {
                    num = false;
                    break;
                }
            }
	return num;
}

function isValidDate(input_value){
    
        var regex = new RegExp(/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/)
	        
        var date = input_value.search(regex);
	
	return !date;
}

function show_errors(text,display,error){

	if(error==1)
		{
                    jQuery(display).html(text);
                    jQuery(display).fadeIn(300).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300);
		}
	else
		{
                    jQuery(display).html('');
                    jQuery(display).hide('');
		}
}

function validateBookForm(theForm) {
    
    var errors = 0;
    
    theForm.find('input.req').each(function(index) {
        var theInput = jQuery(this);
        var theVal = theInput.val();
        var oldBorder = theInput.css('border');
        
                
        var errMarkup = '<div class="error"></div>';
        
        if(theInput.hasClass('text')) {
            if(theVal == '') {
                theInput.css({border: '1px solid red'});
                errors++;
                
                if(!theInput.next().hasClass('error')) {
                    theInput.after(errMarkup)
                } 
                
                theInput.next('.error').text('Please enter a value.')
            } else {
                theInput.css({border: oldBorder});                
                theInput.next('.error').remove();
            }
        }
        
        if(theInput.hasClass('number')) {
            if(!allowedChars(theVal)) {
                theInput.css({border: '1px solid red'});
                errors++;
                
                if(!theInput.next().hasClass('error')) {
                    theInput.after(errMarkup)
                } 
                
                theInput.next('.error').text('Please enter a valid telephone number.')
            } else {
                theInput.css({border: oldBorder});
                theInput.next('.error').remove();
            }
        }
        
        if(theInput.hasClass('email')) {
            if(!IsValidEmail(theVal)) {
                theInput.css({border: '1px solid red'});
                errors++;
                
                if(!theInput.next().hasClass('error')) {
                    theInput.after(errMarkup)
                }           
                
                theInput.next('.error').text('Please enter a valid email address.')
            } else {
                theInput.css({border: oldBorder});
                theInput.next('.error').remove();
            }
        }
        
        if(theInput.hasClass('date')) {
            if(!isValidDate(theVal)) { 
                theInput.css({border: '1px solid red'});
                errors++;                
                
                if(!theInput.next().hasClass('error')) {
                    theInput.after(errMarkup)
                } 
                                
                theInput.next('.error').text('Please enter a valid date yyyy/mm/dd.')
            } else {
                theInput.css({border: oldBorder});
                theInput.next('.error').remove();
            }
        }
        
        var inputOff = theInput.offset();
        var inputPos = theInput.position();
        var _left = inputOff.left + theInput.next('.error').width() + 20 + 60;
        var _top = inputPos.top;
        
        theInput.next('.error').css({
            top: _top,
            left: _left
            })   
    })
    if (errors <= 0) {
        document.bookingForm.submit();
    }  
}


function validateForm (submitted) {

	var errCnt = 0;
	var errors = "";

	var name 		= jQuery(	"input[name='_name']"		);
	var cell 		= jQuery(	"input[name='_cell']"		);
	var comment 	= jQuery(	"textarea[name='_comment']"	);
	var email 		= jQuery(	"input[name='_email']"		);

/////NAME
	if (name.val() == '' || name.val() == 'Name')
		{
		show_errors('Please enter a first name','div.error._name',1);
		errors++;
		}
	else
		{
		show_errors('','div.error._name',0);
		}

/////CELL
	if (cell.val() == '' || cell.val() == 'Cell/Landline')
		{
		show_errors('Please enter a telephone number','div.error._cell',1);
		errors++;
		}
	else
		{
		if(!allowedChars(cell.val()))
			{
			show_errors('Invalid charachters found. Please enter a valid telephone number','div.error._cell',1);
			errors++;
			}
			else
			{
			show_errors('','div.error._cell',0);
			}
		}

/////EMAIL
	if (email.val() == '' || email.val() == 'Email')
		{
		show_errors('Please enter an email address.','div.error._email',1);
		errors++;
		}
	else
		{
		if(!IsValidEmail(email.val()))
			{
			show_errors('Please enter a valid email','div.error._email',1);
			errors++;
			}
		else
			{
			show_errors('','div.error._email',0);
			}
		}

/////COMMENT / QUERY
	if (comment.val() == '' || comment.val() == 'Please write your comments here.')
		{
		show_errors('Please write a comment','div.error._comment',1);
		errors ++;
		}
	else
		{
		show_errors('','div.error._comment',0);
		}


	if (errors <= 0)
		{
		document.contactForm.submit();
		}
}
