/*jslint nomen:false, debug:true, evil:true, vars:false, browser:true, forin:true, undef:false, white:false */
/**
 * Includes a Form with javascript
 * @param {Object} formId
 * @param {Object} initialHeight
 * @param {Object} iframeCode
 */
function FrameBuilder (formId, appendTo, initialHeight, iframeCode){
    this.formId = formId;
    this.initialHeight = initialHeight;
    this.iframeCode = iframeCode;
    this.frame = null;
    this.timeInterval= 200;
    this.appendTo = appendTo || false;
    
    // initialize function for object
    this.init = function(){
        this.createFrame();
        this.addFrameContent(this.iframeCode);
    };
    
    // Create the frame
    this.createFrame = function(){
        var htmlCode = "<"+"iframe src=\"\" allowtransparency=\"true\" frameborder=\"0\" name=\""+this.formId+"\" id=\""+this.formId+"\" style=\"width:100%; height:"+this.initialHeight+"px; border:none;\" scrolling=\"no\"></if"+"rame>";
        if(this.appendTo === false){
            document.write(htmlCode);
        }else{
            var tmp = document.createElement('div');
            tmp.innerHTML = htmlCode;
            var a = this.appendTo;
            document.getElementById(a).appendChild(tmp.firstChild);            
        }
        // also get the frame for future use.
        this.frame = document.getElementById(this.formId);
        // set the time on the on load event of the frame
        this.addEvent(this.frame, 'load', this.bindMethod(this.setTimer, this));
    };
    
    // add event function for different browsers
    this.addEvent = function( obj, type, fn ) {
        if ( obj.attachEvent ) {
            obj["e"+type+fn] = fn;
            obj[type+fn] = function() { obj["e"+type+fn]( window.event ); };
            obj.attachEvent( "on"+type, obj[type+fn] );
        }
        else{
            obj.addEventListener( type, fn, false );   
        }
    };
    
    this.addFrameContent = function (string){
        string = string.replace(new RegExp('src\\=\\"[^"]*captcha.php\"><\/scr'+'ipt>', 'gim'), 'src="http://api.recaptcha.net/js/recaptcha_ajax.js"></scr'+'ipt><'+'div id="recaptcha_div"><'+'/div>'+
                '<'+'style>#recaptcha_logo{ display:none;} #recaptcha_tagline{display:none;} #recaptcha_table{border:none !important;} .recaptchatable .recaptcha_image_cell, #recaptcha_table{ background-color:transparent !important; } <'+'/style>'+
                '<'+'script defer="defer"> window.onload = function(){ Recaptcha.create("6Ld9UAgAAAAAAMon8zjt30tEZiGQZ4IIuWXLt1ky", "recaptcha_div", {theme: "clean",tabindex: 0,callback: function (){'+
                'if (document.getElementById("uword")) { document.getElementById("uword").parentNode.removeChild(document.getElementById("uword")); } if (window["validate"] !== undefined) { if (document.getElementById("recaptcha_response_field")){ document.getElementById("recaptcha_response_field").onblur = function(){ validate(document.getElementById("recaptcha_response_field"), "Required"); } } } if (document.getElementById("recaptcha_response_field")){ document.getElementsByName("recaptcha_challenge_field")[0].setAttribute("name", "anum"); } if (document.getElementById("recaptcha_response_field")){ document.getElementsByName("recaptcha_response_field")[0].setAttribute("name", "qCap"); }}})'+
                ' }<'+'/script>');
        string = string.replace(/(type="text\/javascript">)\s+(validate\(\"[^"]*"\);)/, '$1 jTime = setInterval(function(){if("validate" in window){$2clearTimeout(jTime);}}, 1000);');
        var frameDocument = (this.frame.contentWindow) ? this.frame.contentWindow : (this.frame.contentDocument.document) ? this.frame.contentDocument.document : this.frame.contentDocument;
        frameDocument.document.open();
        frameDocument.document.write(string);
        setTimeout( function(){
            frameDocument.document.close();
            try{
                if('JotFormFrameLoaded' in window){
                    JotFormFrameLoaded();
                }
            }catch(e){}
        },200);
    };
    
    this.setTimer = function(){
        var self = this;
        this.interval = setTimeout(function(){self.changeHeight();},this.timeInterval);
    };
    
    this.changeHeight = function (){
        var actualHeight = this.getBodyHeight();
        var currentHeight = this.getViewPortHeight();
        if(actualHeight === undefined){
            this.frame.style.height = "100%";
            if(!this.frame.style.minHeight){
                this.frame.style.minHeight = "300px";
            }
        }else if  (Math.abs(actualHeight - currentHeight) > 18){
            this.frame.style.height = (actualHeight)+"px";
        }
        this.setTimer();
    };
    
    this.bindMethod = function(method, scope) {
        return function() {
            method.apply(scope,arguments);
        };
    };
    
    this.getBodyHeight = function (){
        var height;
        var scrollHeight;
        var offsetHeight;
        try{  // Prevent IE from throw errors
            if (this.frame.contentWindow.document.height){
                
                height = this.frame.contentWindow.document.height;
                //Emre: to prevent "iframe height"  problem (61059)
                if (this.frame.contentWindow.document.body.scrollHeight){
                    height = scrollHeight = this.frame.contentWindow.document.body.scrollHeight;
                }
                
                if (this.frame.contentWindow.document.body.offsetHeight){
                    height = offsetHeight = this.frame.contentWindow.document.body.offsetHeight;
                }
                
            } else if (this.frame.contentWindow.document.body){
                
                if (this.frame.contentWindow.document.body.scrollHeight){
                    height = scrollHeight = this.frame.contentWindow.document.body.scrollHeight;
                }
                
                if (this.frame.contentWindow.document.body.offsetHeight){
                    height = offsetHeight = this.frame.contentWindow.document.body.offsetHeight;
                }
                
                if (scrollHeight && offsetHeight){
                    height = Math.max(scrollHeight, offsetHeight);
                }
            }            
        }catch(e){ }
        return height;
    };
    
    this.getViewPortHeight = function(){
        var height = 0;
        try{ // Prevent IE from throw errors
            if (this.frame.contentWindow.window.innerHeight)
            {
                height = this.frame.contentWindow.window.innerHeight - 18;
            }
            else if ((this.frame.contentWindow.document.documentElement) &&
                     (this.frame.contentWindow.document.documentElement.clientHeight))
            {
                height = this.frame.contentWindow.document.documentElement.clientHeight;
            }
            else if ((this.frame.contentWindow.document.body) &&
                     (this.frame.contentWindow.document.body.clientHeight))
            {
                height = this.frame.contentWindow.document.body.clientHeight;
            }            
        }catch(e){ }
        return height;
    };
    
    this.init();
}
FrameBuilder.get = [];
var i1400305759 = new FrameBuilder("1400305759", false, "", "<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01\/\/EN\" \"http:\/\/www.w3.org\/TR\/html4\/strict.dtd\">\n<html><head>\n<meta http-equiv=\"Content-Type\" content=\"text\/html; charset=utf-8\" \/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\" \/>\n<meta name=\"HandheldFriendly\" content=\"true\" \/>\n<title>Form<\/title>\n<link href=\"http:\/\/max.jotfor.ms\/min\/g=formCss?3.0.2435\" rel=\"stylesheet\" type=\"text\/css\" \/>\n<style type=\"text\/css\">\n    .form-label{\n        width:150px !important;\n    }\n    .form-label-left{\n        width:150px !important;\n    }\n    .form-line{\n        padding:10px;\n    }\n    .form-label-right{\n        width:150px !important;\n    }\n    body, html{\n        margin:0;\n        padding:0;\n        background:#FFFFFF;\n    }\n\n    .form-all{\n        margin:0px auto;\n        padding-top:0px;\n        width:650px;\n        background:#FFFFFF;\n        color:Black !important;\n        font-family:Verdana;\n        font-size:12px;\n    }\n<\/style>\n\n<script src=\"http:\/\/max.jotfor.ms\/min\/g=jotform?3.0.2435\" type=\"text\/javascript\"><\/script>\n<script type=\"text\/javascript\">\n var jsTime = setInterval(function(){try{\n   JotForm.jsForm = true;\n\n   JotForm.init(function(){\n      $('input_16').hint('ex: myname@example.com');\n      JotForm.initCaptcha('input_19');\n   });\n\n   clearInterval(jsTime);\n }catch(e){}}, 1000);\n<\/script>\n<\/head>\n<body>\n<form class=\"jotform-form\" action=\"http:\/\/submit.jotform.com\/submit.php\" method=\"post\" name=\"form_1400305759\" id=\"1400305759\" accept-charset=\"utf-8\">\n  <input type=\"hidden\" name=\"formID\" value=\"1400305759\" \/>\n  <div class=\"form-all\">\n    <ul class=\"form-section\">\n      <li id=\"cid_18\" class=\"form-input-wide\">\n        <div class=\"form-header-group\">\n          <h2 id=\"header_18\" class=\"form-header\">\n            Contact Us\n          <\/h2>\n          <div id=\"subHeader_18\" class=\"form-subHeader\">\n            Please we welcome your feedback, queries, ideas or just to let us know if there is something we have put wrong, just fill in the form below and we will get back to you shortly.\n          <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_15\">\n        <label class=\"form-label-top\" id=\"label_15\" for=\"input_15\">\n          Your Name<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_15\" class=\"form-input-wide\"><span class=\"form-sub-label-container\"><input class=\"form-textbox validate[required]\" type=\"text\" size=\"10\" name=\"q15_yourName[first]\" id=\"first_15\" \/>\n            <label class=\"form-sub-label\" for=\"first_15\" id=\"sublabel_first\"> First Name <\/label><\/span><span class=\"form-sub-label-container\"><input class=\"form-textbox validate[required]\" type=\"text\" size=\"15\" name=\"q15_yourName[last]\" id=\"last_15\" \/>\n            <label class=\"form-sub-label\" for=\"last_15\" id=\"sublabel_last\"> Last Name <\/label><\/span>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_16\">\n        <label class=\"form-label-top\" id=\"label_16\" for=\"input_16\">\n          Your E-mail Address<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_16\" class=\"form-input-wide\">\n          <input type=\"email\" class=\"form-textbox validate[required, Email]\" id=\"input_16\" name=\"q16_yourEmail16\" size=\"20\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_17\">\n        <label class=\"form-label-top\" id=\"label_17\" for=\"input_17\">\n          Your Message&nbsp;<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_17\" class=\"form-input-wide\">\n          <textarea id=\"input_17\" class=\"form-textarea validate[required]\" name=\"q17_yourMessage\" cols=\"60\" rows=\"9\"><\/textarea>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_19\">\n        <label class=\"form-label-top\" id=\"label_19\" for=\"input_19\">\n          Enter the message as it's shown<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_19\" class=\"form-input-wide\">\n          <div class=\"form-captcha\">\n            <label for=\"input_19\"> <img alt=\"Captcha - Reload if it's not displayed\" id=\"input_19_captcha\" class=\"form-captcha-image\" style=\"background:url(http:\/\/www.jotform.com\/images\/loader-big.gif) no-repeat center;\" src=\"http:\/\/www.jotform.com\/images\/blank.gif\" width=\"150\" height=\"41\" \/> <\/label>\n            <div style=\"white-space:nowrap;\">\n              <input type=\"text\" id=\"input_19\" class=\"form-textbox validate[required]\" name=\"captcha\" style=\"width:130px;\" \/>\n              <img src=\"http:\/\/www.jotform.com\/images\/reload.png\" alt=\"Reload\" align=\"absmiddle\" style=\"cursor:pointer\" onclick=\"JotForm.reloadCaptcha('input_19');\" \/>\n              <input type=\"hidden\" name=\"captcha_id\" id=\"input_19_captcha_id\" value=\"0\">\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_14\">\n        <div id=\"cid_14\" class=\"form-input-wide\">\n          <div style=\"text-align:center\" class=\"form-buttons-wrapper\">\n            <button id=\"input_14\" type=\"submit\" class=\"form-submit-button\">\n              Submit\n            <\/button>\n            &nbsp;\n            <button id=\"input_reset_14\" type=\"reset\" class=\"form-submit-reset\">\n              Clear Form\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/li>\n      <li style=\"display:none\">\n        Should be Empty:\n        <input type=\"text\" name=\"website\" value=\"\" \/>\n      <\/li>\n    <\/ul>\n  <\/div>\n  <input type=\"hidden\" id=\"simple_spc\" name=\"simple_spc\" value=\"1400305759\" \/>\n  <script type=\"text\/javascript\">\n  document.getElementById(\"si\" + \"mple\" + \"_spc\").value = \"1400305759-1400305759\";\n  <\/script>\n<\/form><\/body>\n<\/html>\n");

