/**
 * This javascript provides some functions and other code for the proper functioning of the site (including ajax related stuffs).
 * @author Swaroop Shankar <swaroop@opentechnics.com>
 */
$(document).ready(function(){
    $('#newsLetterLink').click(function(){
        $.blockUI({
            message: $('#newsLetterForm'),
            showOverlay: true,
            css: {
                width: '300px',
                border: 'none',
                padding: '5px',
                backgroundColor: '#fff',
                '-webkit-border-radius': '10px',
                '-moz-border-radius': '10px',
                opacity: 1,
                color: '#000'
            }
        });
        document.getElementById('NewsletterEmailFirstName').value = '';
        document.getElementById('NewsletterEmailSecondName').value = '';
        document.getElementById('NewsletterEmailEmailAddress').value = '';
    });
    
    $('#newsLetterSave').click(function(){
    
        //we need to initilize some variables
        var firstname = TrimString(document.getElementById('NewsletterEmailFirstName').value);
        var secondname = TrimString(document.getElementById('NewsletterEmailSecondName').value);
        var emailaddress = TrimString(document.getElementById('NewsletterEmailEmailAddress').value);
        var firstNameError = 1;
        var secondNameError = 1;
        var emailError = 1;
        
        //let us do the validation checking
        if (firstname == '') {
            $('#firstNameError').html("First Name cannot be left blank!");
            firstNameError = 1;
        }
        else {
            $('#firstNameError').empty();
            firstNameError = 0;
        }
        
        if (secondname == '') {
            $('#secondNameError').html("Second Name cannot be left blank!");
            secondNameError = 1;
        }
        else {
            $('#secondNameError').empty();
            secondNameError = 0;
        }
        
        if (emailaddress == '') {
            $('#emailError').html("Email address cannot be left blank!");
            emailError = 1;
        }
        else {
            if (!emailcheck(emailaddress)) {
                $('#emailError').html("Email address entered is invalid!");
                emailError = 1;
            }
            else {
                $('#emailError').empty();
                emailError = 0;
            }
        }
        
        if (firstNameError == 0) {
            if (secondNameError == 0) {
                if (emailError == 0) {
                    $.post("newsletter_emails/add", {
                        fname: firstname,
                        sname: secondname,
                        email: emailaddress
                    }, function(data){
						if(data == 'success'){
							$.unblockUI();
							$('#div_alert').html("Thanks for subscribing our newsletter!");
							$('#div_alert').slideDown("slow").animate({opacity: '+=0'}, 3000).slideUp();
						} else if(data == 'failed') {
							$('#div_alert').html("Your email could not be saved. Please, try again.!");
						} else if(data == 'email_duplication') {
							$('#emailError').html("Email already exist in records!");
						}
                    });
                    
                }
            }
        }
    });
    
    $('#newsLetterCancel').click(function(){
        $.unblockUI();
        return false;
    });
})

function TrimString(sInString){
    sInString = sInString.replace(/^\s+/g, "");// strip leading
    return sInString.replace(/\s+$/g, "");// strip trailing
}


function MM_swapImgRestore(){ //v3.0
    var i, x, a = document.MM_sr;
    for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) 
        x.src = x.oSrc;
}

function MM_preloadImages(){ //v3.0
    var d = document;
    if (d.images) {
        if (!d.MM_p) 
            d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
        for (i = 0; i < a.length; i++) 
            if (a[i].indexOf("#") != 0) {
                d.MM_p[j] = new Image;
                d.MM_p[j++].src = a[i];
            }
    }
}

function MM_findObj(n, d){ //v4.01
    var p, i, x;
    if (!d) 
        d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document;
        n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) 
        x = d.all[n];
    for (i = 0; !x && i < d.forms.length; i++) 
        x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) 
        x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) 
        x = d.getElementById(n);
    return x;
}

function MM_swapImage(){ //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments;
    document.MM_sr = new Array;
    for (i = 0; i < (a.length - 2); i += 3) 
        if ((x = MM_findObj(a[i])) != null) {
            document.MM_sr[j++] = x;
            if (!x.oSrc) 
                x.oSrc = x.src;
            x.src = a[i + 2];
        }
}

//Google Maps Integration
function initialize(){
    if (GBrowserIsCompatible()) {
        var point = new GLatLng(9.974836675361235, 76.24352395534515);
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(point, 13);
        map.addControl(new GLargeMapControl());
        
        var mapControl = new GMapTypeControl();
        map.addControl(mapControl);
        
        var address = '<b>Sea Blue Shipyard</b><br>Edakochi, <br>Cochin - 682510, <br> Kerala, <br>India';
        
        map.openInfoWindowHtml(point, address);
        // Add markers to the map at the location
        map.addOverlay(new GMarker(point));
        
    }
}

/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 * Code modified a bit by Swaroop Shankar <swaroop@opentechnics.com>
 */
function emailcheck(str){
    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)
    if (str.indexOf(at) == -1) {
        return false
    }
    
    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        return false
    }
    
    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        return false
    }
    
    if (str.indexOf(at, (lat + 1)) != -1) {
        return false
    }
    
    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        return false
    }
    
    if (str.indexOf(dot, (lat + 2)) == -1) {
        return false
    }
    
    if (str.indexOf(" ") != -1) {
        return false
    }
    
    return true
}
