/* http://e2contest.emerge2.com/e2contest.js */
var script_domain ="http://e2contest.emerge2.com/";
jQuery.noConflict();

jQuery(document).ready(function(){
   jQuery('#e2contest_form').submit(function(){
      var error_messages = new Array();
      var field_label = '';      
      jQuery('input').each(function(){
         var rel = jQuery(this).attr("rel");
         var type = jQuery(this).attr("type");
         var field_value = '';
         var field_name = jQuery(this).attr("name");
         if(rel=="required"){
            if(type == 'radio' | type=='checkbox'){
               field_value = jQuery('"'+"input[name='"+field_name+"']:checked"+'"').val();
            }else{
               field_value = jQuery(this).val();
            }
            if(field_value == '' | field_value == undefined ){
               field_label = get_label(field_name);
               error_messages.push(compose_mandatory_field_error_message(field_label));
            }
         }
         if(rel=="email"){
            var str = jQuery(this).val();
            if(!isValidEmailAddress(str)){
               field_label = get_label(jQuery(this).attr("name"));
               error_messages.push(compose_email_error_message(field_label));
            }
         }
      });
      jQuery('select').each(function(){
         var rel = jQuery(this).attr("rel");
         var field_name = jQuery(this).attr("name");
         var field_value = '';
         if(rel=="required"){
            field_value = jQuery(this).val();
         }
         if(field_value == '' | field_value == undefined ){
            field_label = get_label(field_name);
            error_messages.push(compose_mandatory_field_error_message(field_label));
         }
      });
      //check whether if there are no error messages, then make ajax call
      if(!error_messages.length){
         //make an ajax call
         var str = jQuery(this).serialize();         
         jQuery.getJSON(script_domain + 'e2contest_ajax.php?' +  str + '&jsoncallback=?', function(data){
            if(data){
               if(data.response == 0){
                  jQuery("#e2contest_thankyou").hide();
                  jQuery("#e2contest_error").html(data.msg);
                  jQuery("#e2contest_error").show();
               }
               else if(data.response == 1){
                  jQuery("#e2contest_thankyou").empty();
                  jQuery("#e2contest_thankyou").html(data.msg);
                  jQuery("#e2contest_thankyou").show();
                  jQuery("#e2contest_form_section").hide();
               }
            }
         });
         return false;
      }else{
         //show error messages
         var error_message = 'ERRORS ENCOUNTERED\n\n';
         for(x=0; x<error_messages.length; x++){
            error_message =  error_message + error_messages[x];
         }
         error_message += "\nPlease try again.\n";
         alert(error_message);
         return false;
      }
   });
});

function get_label(label_name){
   return jQuery('label[for="'+label_name+'"]').text();
}

function isValidEmailAddress(emailAddress) {
   var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
   return pattern.test(emailAddress);
}

function compose_email_error_message(label_name){
   return '"'+label_name+'"'+" is not a valid email address\n";
}

function compose_mandatory_field_error_message(label_name){
   return '"'+label_name+'"'+" cannot be empty\n";
}

function e2contest_open_window(url){
   var tmpwidth = (screen.availWidth - 100);
   var tmpheight = parseInt(screen.availHeight * .8);
   if ( tmpwidth < 100 ) {
      tmpwidth = (screen.width - 100);
   }
   if ( tmpheight < 100 ) {
      tmpheight = parseInt(screen.height * .8);
   }
   if ( tmpwidth < 100 ) {
      tmpwidth = 600;
   }
   if ( tmpheight < 100 ) {
      tmpheight = 500;
   }
   if ( tmpwidth > 800 ) {
      tmpwidth = 800;
   }
   if ( tmpheight > 1000 ) {
      tmpheight = 1000;
   }
   features = 'width=' + tmpwidth + ',height=' + tmpheight + ',top=20,left=30,' + 'toolbar=no,scrollbars=yes,location=no,status=yes,menubar=no,resizable=yes';
   window_name	= 'e2contest_popup_window';
   result = window.open(url,window_name,features);
   result.focus();
}
