/* Globals */
var initTime = 2000; // Must be greater than 2000 for animations to flow
var nxtTime = 5000;
var minimumLengthOfSearch = 4;
var ad = new Array() ;
var searchOptions = "CAP";
ad[1] = $('#left_column');
ad[2] = $('#middle_column');
ad[3] = $('#right_column');
    
function getAds(term) {
	if (arguments.length > 0) {
		$.ajax({
			url: "lib/getAds.php",
			type: "POST",
            data: ({ term: term }),
        	dataType: "json",
        	success: function (data) {	  
        		var iterator = 0;
            	$(data).each(function(index) {
            		var path = 'img/GIFs/Premium Animated/'+ data[index].AdvertFileName;
					path = path.replace(/.pdf/ig, ".gif");
            		ad[index+1].find('img').attr('src', path);
            	});
        	}
    	})
	} else {
		$.ajax({
			url: "lib/getAds.php",
        	dataType: "json",
        	success: function (data) {	  
        		var iterator = 0;
            	$(data).each(function(index) {
            		var path = 'img/GIFs/Premium Animated/'+ data[index].AdvertFileName;
					path = path.replace(/.pdf/ig, ".gif");
            		ad[index+1].find('img').attr('src', path);
            	});
        	}
    	})
    }
}

/* Rotation of Advertisements */
function timeout_trigger() {

    for (var i = 1; i<4; i++) {
        if (ad[i].css('left') > '560px') {
            var tmp = ad[i];
            setTimeout(function(){fademe(tmp, 1);},300);
            setTimeout(function(){fademe(tmp, 2);},1000);
        } else {
            ad[i].animate({
                left: '+=280'
              }, 2000);
          }
    }
    setTimeout("timeout_trigger()", nxtTime);
}

/* Generic: Fade in our out based on mode */
function fademe(obj, mode) {
    switch(mode) {
        case 1:
            obj.fadeTo('slow', 0);
            break;
        case 2:
            obj.css('left', '10px'); 
            obj.fadeTo('slow', 1);
            break;
    }
}

/* main starting point of application */
$(document).ready(function () {

	getAds(); setTimeout("getAds()", 60000);
	
    /* Recursive BannerRotate starting at initTime and cycling every nxtTime */
    setTimeout("timeout_trigger()", initTime);
    
    /* output window hide function */
    $('#close').click(function() {
        $(this).parent().slideUp();
    });
    
    /* Clear and Set the search bar based on status */
    $('#searchABC').focus(function() {
        if ($(this).val() == 'Enter Company name/Keyword/Category/Brand' || $(this).val().length > 5) {
            $(this).val('');
        }
    }).blur(function() {
        if ($(this).val() == '') {
            $(this).val('Enter Company name/Keyword/Category/Brand');
        }
    });
    
    $('#links_box a').click(function() {
    	$('#overlay').hide('fast');
    });
    
    $('input[type=checkbox]').click(function() {
    	var loc = searchOptions.indexOf($(this).val())
    	var temp = new Array();
    	if (loc == -1) {
    		searchOptions += $(this).val();
    	} else {
    		temp = searchOptions.split(searchOptions[loc]);
    		searchOptions = temp[0] + temp[1];
    	}
    });
    
    $('#registration').click(function() {
    	$('#overlay').hide('fast');
    	$('#overlay').load('registration.php', function() {
  			$(this).css('left' , (($(window).width() - $(this).width()) / 2));
  			$(this).show('slow');
  			$.ajax({
            	url: "lib/getActivities.php",
                dataType: "json",
                success: function (data) {	  
                	var iterator = 0;
                    $(data).each(function() {
                    $('.select_activity').each(function() {
                    	$(this).append('<option value="'+data[iterator++].ActivityID+'">' + data[iterator].Description + '</option>');
                    });
                });                        }
            });
            $('#overlay_close').click(function() {
            	$('#overlay').hide('fast');
            });
  			$('#reset_form').click(function() {
  				$('input[type=text]').val('');
  				$('select option:first-child').attr("selected", "selected");
				$('input[name=Advertise]').attr('checked', false);
  			});
  			$('#submit_form').click(function(){
				if (validateRegistration()) {
					return false;
				}
				$('#submit_form').attr("disabled", "disabled");
		 		$.ajax({
                        url: "lib/sendForm.php",
                        type: "POST",
                        data: ({inputCompany: $('#inputCompany').val(),
						inputTel: $('#inputTel').val(),
						inputFax: $('#inputFax').val(),
						inputEmail: $('#inputEmail').val(),
						inputWebsite: $('#inputWebsite').val(),
						inputPOBox: $('#inputPOBox').val(),
						inputCity: $('#inputCity').val(),
						inputPostcode: $('#inputPostcode').val(),
						inputPersonnel1: $('#inputPersonnel1').val(),
						inputDesignation1: $('#inputDesignation1').val(),
						inputPersonnel2: $('#inputPersonnel2').val(),
						inputDesignation2: $('#inputDesignation2').val(),					
						select_activity1: $('#select_activity1 option:selected').val(),
						select_activity2: $('#select_activity2 option:selected').val(),
						select_activity3: $('#select_activity3 option:selected').val(),
						select_activity4: $('#select_activity4 option:selected').val(),
						select_activity5: $('#select_activity5 option:selected').val(),
						select_activity6: $('#select_activity6 option:selected').val(),
						Advertise:$('#checkboxAdvertise').val(),
						select_brandfinder: $('#select_brandfinder').val(),
						select_classified: $('#select_classified').val(),
						select_alphalistings: $('#select_alphalistings').val(),
						select_premiumpages: $('#select_premiumpages').val(),
						select_internetads: $('#select_internetads').val()														
						}),
                        success: function (data) {	   
							if(data == "TRUE"){
								$('#overlay').hide('fast');
								alert('Thank you for Registering, Confirmationary Email Sent...');
							}
							else{
								$('#submit_form').removeAttr("disabled");
							}
                        }
                    })	
				});
  		});
	});
	
	$('#contact').click(function() {
		$('#overlay').hide('fast');
		$('#overlay').load('contactus.php', function() {
			$(this).css('left' , (($(window).width() - $(this).width()) / 2));
  			$(this).show('slow');
  			$('#overlay_close').click(function() {
            	$('#overlay').hide('fast');
            });
  			$('#Send').click(function(){
  				if (validateContact()) {
  					return false;
  				}
  				$('#Send').attr("disabled", "disabled");
		 		$.ajax({
                        url: "lib/sendContact.php",
                        type: "POST",
                        data: ({inputName: $('#inputNameContact').val(),
						inputEmail: $('#inputEmailContact').val(),
						inputSubject: $('#inputSubjectContact').val(),
						feedback: $('#inputFeedbackContact').val()		
						}),
                        success: function (data) {	   
							if(data == "TRUE"){
								$('#overlay').hide('fast');
								alert('Email Sent.');
							}
							else{
								$('#Send').removeAttr("disabled");	
							}
                        }
                })	
			});
		});
	});
    
    /* Outocomplete Category Implementation: Reads the current object's category string to sort */
    $.widget("custom.catcomplete", $.ui.autocomplete, {
        _renderMenu: function (ul, items) {
            var self = this,
				currentCategory = "";
            $.each(items, function (index, item) {
                if (item.category != currentCategory) {
                    ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
                    currentCategory = item.category;
                }
                self._renderItem(ul, item);
            });
        }
    });
    
    /* Ajax implementation of autocomplete from jqueryUI */
    $("#searchABC").catcomplete({
        source: "lib/autocomplete.php",
        minLength: minimumLengthOfSearch,
        // Mouse Over Listed Item
        focus: function (event, ui) { 
            $("#searchABC").val(ui.item.value);
            return false;
        },
        // Selection of item
        select: function (event, ui) {
            var out = $('#out');
            var output = $('#output');
            output.slideUp('fast');
            $('#loading').fadeTo('slow', 1);
            switch (ui.item.category) {
                case "Companies":
                    $.ajax({
                        url: "lib/getdata.php",
                        type: "POST",
                        data: ({ id: ui.item.id, mode: 'getCompany' }),
                        dataType: "json",
                        //async: false,
                        success: function (data) {
						var address = (data[0].Address) ? '<b> Address:</b> <br/> ' + data[0].Address : '' ;
                        var phone = (data[0].Phone) ? '<b>Phone:</b>  ' + data[0].Phone : '' ;
                        var fax = (data[0].Fax) ? '<b>Fax:</b>  ' + data[0].Fax : '' ;
                        var email = (data[0].Email) ? '<b>Email:</b>  <a href="mailto:' + data[0].Email + '">' + data[0].Email + '</a>' : '' ;
                        var web = (data[0].URL) ? '<b>Website:</b>  <a href="http://' + data[0].URL + '">' + data[0].URL + '</a>' : '' ;
                        var activities = (data[0].Description) ? '<b>Activities:</b>  ' + data[0].Description : '' ;
						var contact = '<b>Key Personnel:</b> <br /> ' + (data[0].FirstContact) + ' (' + (data[0].FirstTitle) + ')';
                        var contact2 = (data[0].SecondContact) ? '<br />' + data[0].SecondContact + ' (' + (data[0].SecondTitle) + ')' : '' ;   
						    out.html('<div class="results"><div style="float:left; width:400px"> <table><tr><td><h1>' + data[0].CompanyName + ' </h1></td></tr?</table><br />' + data[0].LogoPath + '<table> <tr> <td> <h2>' + 
                            address + '</h2> </td> </tr> <tr> <td> <h2>' + 
														
                            phone + '</h2> </td> </tr> <tr> <td> <h2>' + 
                            fax + '</h2> </td> </tr> <tr> <td> <h2>' + 
                            email + '</h2> </td> </tr> <tr> <td> <h2>' + 
                            web + '</h2> </td> </tr><tr><td><br /></td></tr> <tr> <td> <h2>' + 
							contact + contact2 + '</h2> </td> </tr> <tr> <td> <h3>' + 
                            activities + '</h3> </td> </tr> </table> <div id="compAct"> </div></div> <div id="compBrand"> </div> </div>');
                            $('#loading').hide();
                            output.slideDown('slow');
                            $.ajax({
                            	url: "lib/getCompanyActivity.php",
                            	type: "POST",
                            	data: ({ id: data[0].CompanyID }),
                            	dataType: "json",
                            	success: function(subdata) {
                            		$('#compAct').html('<table><tr><td><b>Business Activities: </b></td></tr></table>');
                            		for (var i=0;i<=subdata.length;i++) {
                            			$('#compAct table').append('<tr><td>' + subdata[i].Description +'</td></tr>');
                            		}
                            	}
                            });
                            $.ajax({
                            	url: "lib/getCompanyBrands.php",
                            	type: "POST",
                            	data: ({ id: data[0].CompanyID }),
                            	dataType: "json",
                            	success: function(subdata) {
                            		if (subdata.length > 0) {
                            			$('#compBrand').prepend('<center><h1> Associated Brands </h1></center>');
                            		}
                            		for (var i=0;i<=subdata.length;i++) {
                            			var path = subdata[i].BrandFileName.replace(/.jpg/ig, ".gif");
                            			var path = subdata[i].BrandFileName.replace(/.pdf/ig, ".gif");
                            			var temp = new Array();
                            			temp = path.split("/");
                            			$('#compBrand').append('<img src="img/BrandFinder Logos GIFs/'+temp[1]+'"></img>');
                            		}
                            	}
                            });
                        }
                    })
                    break;
                case "Personnel":
                    $.ajax({
                        url: "lib/getdata.php",
                        type: "POST",
                        data: ({ id: ui.item.id, mode: 'getContact' }),
                        dataType: "json",
                        //async: false,
                        success: function (data) {	   
                            out.html("<div class='results'><h2>" +data[0].FullName + "</h2><br />" +data[0].Company+"</div>");
                            $('#loading').hide();
                            output.slideDown('slow');
							companyLink($('.results a'));
                        }
                    })
                    break;
                case "Activities":
                    $.ajax({
                        url: "lib/getdata.php",
                        type: "POST",
                        data: ({ id: ui.item.id, mode: 'getActivity' }),
                        dataType: "json",
                        //async: false,
                        success: function (data) {
                            $('#loading').hide();
                            var iterator = 0;
                            out.html('<div style="padding-top: 20px; padding-left:15px"><h1>' + data[0].Description + '</h1></div><br/><br/>');
							//alert(data[0].LogoPath);
                            $(data).each(function() {
                                out.append('<div class="result_s"><h2>' + data[iterator].CompanyName + '</h2><table><tr><td class="lefttd">' 
                                	+ data[iterator].Email 
                                	+ data[iterator].WebAddress 
                                	+ '<li>' + data[iterator].Phone + '</li></ul>'
								    + '<td>' + data[iterator].LogoPath + '</td>'
								    + '</tr></table></div>');
								iterator++;
                            });
                            $('.result_s').fadeTo('fast', .6);
                            $('.result_s').hover(function() {
                            	$(this).fadeTo('slow', 1);
                            	$(this).css('border', '1px dotted black');
                            }, function() {
                            	$(this).fadeTo('fast', .6);
                            	$(this).css('border', '0px solid black');
                            });
                            output.slideDown('slow');
                            companyLink($('.result_s a'));
                        }
                    })
                    break;
            	case "Brands":
            		$.ajax({
                        url: "lib/getdata.php",
                        type: "POST",
                        data: ({ id: ui.item.id, mode: 'getBrands' }),
                        dataType: "json",
                        //async: false,
                        success: function (data) {
                            $('#loading').hide();
                            var iterator = 0;
                            out.html('<div style="padding-top: 20px; padding-right:4px; margin:10px"><h1>' + data[0].BrandName + '</h1></div>');
                            $(data).each(function() {
                            	var path = data[iterator].BrandFileName.replace(/.pdf/ig, ".gif");
                            	var temp = new Array();
                            	temp = path.split("/");
                                out.append('<div class="result_s"><h2>' + data[iterator].Name + '</h2><table><tr><td class="lefttd"> <b>Email:</b> ' 
                                	+ data[iterator].Email 
                                	+ '<li><b>Tel:</b>' + data[iterator].Phone + '</li></ul>'
								    + '<td><img src="img/BrandFinder Logos GIFs/'+temp[1]+'"></img></td>'
								    + '</tr></table></div>');
								iterator++;
                            });
                            $('.result_s').fadeTo('fast', .6);
                            $('.result_s').hover(function() {
                            	$(this).fadeTo('slow', 1);
                            	$(this).css('border', '1px dotted black');
                            }, function() {
                            	$(this).fadeTo('fast', .6);
                            	$(this).css('border', '0px solid black');
                            });
                            output.slideDown('slow');
                            companyLink($('.result_s a'));
                        }
                    })
            		break;
            };
            getAds($('#searchABC').val());
        }
		
		
    });
	
	
	
});

function validateRegistration() {
	var result = false;
	if (isNull($('#inputCompany'))) { result = true; }
	if (isNull($('#inputPOBox'))) { result = true; }
	if (isNull($('#inputCity'))) { result = true; }
	if (isNull($('#inputPostcode'))) { result = true; }
	if (isNull($('#inputAddress'))) { result = true; }
	if (isNull($('#inputPersonnel1'))) { result = true; }
	if (isNull($('#inputDesignation1'))) { result = true; }
	if (isValidEmail($('#inputEmail'))) { result = true; }
	if (IsNumeric($('#inputTel'))) { result = true; }
	if ($('#select_activity1')[0].selectedIndex == 0) { 
		$('#select_activity1').parent().siblings().css('color','red');
		result = true;
	} else {
		$('#select_activity1').parent().siblings().css('color','black');
	}
	// Return False if Valid
	return result;
};

function validateContact() {
	var result = false;
	if (isNull($('#inputNameContact'))) { result = true; }
	if (isNull($('#inputSubjectContact'))) { result = true; }
	if (isNull($('#inputFeedbackContact'))) { result = true; }
	if (isValidEmail($('#inputEmailContact'))) { result = true; }
	return result;
};

function isNull(object) {
	if (object.val() == '') {
		object.parent().siblings().css('color', 'red');
		return true;
	} else {
		object.parent().siblings().css('color', 'black');
	}
	return false;
};

function IsNumeric(object) {
   var sText = object.val();
   var ValidChars = "0123456789+- ";
   var IsNumber=false;
   var Char;
   
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         	IsNumber = true;
         }
      }
	if (sText == '') {
		IsNumber = true;
		object.parent().siblings().css('color', 'red');
	}
	if (IsNumeric == false) { object.parent().siblings().css('color', 'black') };
   return IsNumber;
}

function isValidEmail(object) {
	var str = object.val();
	if ((str.indexOf(".") > 2) && (str.indexOf("@") > 0)) {
		object.parent().siblings().css('color', 'black');
		return false;	
	} else {
		object.parent().siblings().css('color', 'red');
		return true;
	}
}

function companyLink(object){
	object.click(function(){
		var thisid = $(this).attr('id');
		//alert(thisid);
		var out = $('#out');
        var output = $('#output');
        output.slideUp('fast');
		 $.ajax({
                        url: "lib/getdata.php",
                        type: "POST",
                        data: ({ id: thisid, mode: 'getCompany' }),
                        dataType: "json",
                        //async: false,
                        success: function (data) {
							//alert(data[0].LogoPath);
						var address = (data[0].Address) ? '<b>Address:</b> <br/> ' + data[0].Address : '' ;
                        var phone = (data[0].Phone) ? '<b>Phone:</b>  ' + data[0].Phone : '' ;
                        var fax = (data[0].Fax) ? '<b>Fax:</b>  ' + data[0].Fax : '' ;
                        var email = (data[0].Email) ? '<b>Email:</b>  <a href="mailto:' + data[0].Email + '">' + data[0].Email + '</a>' : '' ;
                        var web = (data[0].URL) ? '<b>Website:</b>  <a href="http://' + data[0].URL + '">' + data[0].URL + '</a>' : '' ;
                        var activities = (data[0].Description) ? '<b>Activities:</b>  ' + data[0].Description : '' ;
						var contact = '<b>Key Personnel:</b> <br /> ' + (data[0].FirstContact) + ' (' + (data[0].FirstTitle) + ')';
                        var contact2 = (data[0].SecondContact) ? '<br />' + data[0].SecondContact + ' (' + (data[0].SecondTitle) + ')' : '' ;   
						    out.html('<div class="results"><div style="float:left; width:400px"> <table><tr><td><h1>' + data[0].CompanyName + ' </h1></td></tr?</table><br />' + data[0].LogoPath + '<table> <tr> <td> <h2>' + 
                            address + '</h2> </td> </tr> <tr> <td> <h2>' + 
														
                            phone + '</h2> </td> </tr> <tr> <td> <h2>' + 
                            fax + '</h2> </td> </tr> <tr> <td> <h2>' + 
                            email + '</h2> </td> </tr> <tr> <td> <h2>' + 
                            web + '</h2> </td> </tr><tr><td><br /></td></tr> <tr> <td> <h2>' + 
							contact + contact2 + '</h2> </td> </tr> <tr> <td> <h3>' + 
                            activities + '</h3> </td> </tr> </table> <div id="compAct"> </div></div> <div id="compBrand"> </div> </div>');
                            $('#loading').hide();
                            output.slideDown('slow');
                            $.ajax({
                            	url: "lib/getCompanyActivity.php",
                            	type: "POST",
                            	data: ({ id: data[0].CompanyID }),
                            	dataType: "json",
                            	success: function(subdata) {
                            		$('#compAct').html('<table><tr><td><b>Business Activities: </b></td></tr></table>');
                            		for (var i=0;i<=subdata.length;i++) {
                            			$('#compAct table').append('<tr><td>' + subdata[i].Description +'</td></tr>');
                            		}
                            	}
                            });
                            $.ajax({
                            	url: "lib/getCompanyBrands.php",
                            	type: "POST",
                            	data: ({ id: data[0].CompanyID }),
                            	dataType: "json",
                            	success: function(subdata) {
                            		if (subdata.length > 0) {
                            			$('#compBrand').prepend('<center><h1> Associated Brands </h1></center>');
                            		}
                            		for (var i=0;i<=subdata.length;i++) {
                            			var path = subdata[i].BrandFileName.replace(/.jpg/ig, ".gif");
                            			var path = subdata[i].BrandFileName.replace(/.pdf/ig, ".gif");
                            			var temp = new Array();
                            			temp = path.split("/");
                            			$('#compBrand').append('<img src="img/BrandFinder Logos GIFs/'+temp[1]+'"></img>');
                            		}
                            	}
                            });
                        }
                    })
		
	});
}

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-22656838-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
