/*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 i90670619113 = new FrameBuilder("90670619113", 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:5px;\n    }\n    .form-label-right{\n        width:150px !important;\n    }\n    body, html{\n        margin:0;\n        padding:0;\n        background:white;\n    }\n\n    .form-all{\n        margin:0px auto;\n        padding-top:20px;\n        width:690px;\n        background:white;\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      JotForm.description('input_26', 'max 500kb');\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\" enctype=\"multipart\/form-data\" name=\"form_90670619113\" id=\"90670619113\" accept-charset=\"utf-8\">\n  <input type=\"hidden\" name=\"formID\" value=\"90670619113\" \/>\n  <div class=\"form-all\">\n    <ul class=\"form-section\">\n      <li class=\"form-line\" id=\"id_23\">\n        <div id=\"cid_23\" class=\"form-input-wide\">\n          <div id=\"text_23\" class=\"form-html\">\n            <p><span style=\"font-family: Arial;\"><span style=\"font-size: medium;\"><strong>\n                    <div style=\"color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-weight: normal; margin: 8px;\">\n                      <p><span style=\"font-size: medium;\"><span style=\"font-weight: bold; font-family: Arial;\">Registration Form for the Noise Market Square Art<\/span><\/span><span style=\"font-family: Arial; font-size: medium; font-weight: bold;\">s Bazaar @ Marina Square Southern Plaza<\/span>\n                      <\/p>\n                    <\/div>\n                  <\/strong><\/span><\/span>\n            <\/p>\n          <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_0\">\n        <label class=\"form-label-left\" id=\"label_0\" for=\"input_0\">\n          First Name:<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_0\" class=\"form-input\">\n          <input type=\"text\" class=\"form-textbox validate[required, Alphabetic]\" id=\"input_0\" name=\"q0_firstName\" size=\"20\" maxlength=\"100\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_8\">\n        <label class=\"form-label-left\" id=\"label_8\" for=\"input_8\">\n          Last Name:<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_8\" class=\"form-input\">\n          <input type=\"text\" class=\"form-textbox validate[required, Alphabetic]\" id=\"input_8\" name=\"q8_lastName\" size=\"20\" maxlength=\"100\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_16\">\n        <label class=\"form-label-left\" id=\"label_16\" for=\"input_16\">\n          NRIC:<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_16\" class=\"form-input\">\n          <input type=\"text\" class=\"form-textbox validate[required]\" id=\"input_16\" name=\"q16_nric\" size=\"20\" maxlength=\"100\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_1\">\n        <label class=\"form-label-left\" id=\"label_1\" for=\"input_1\">\n          E-mail:<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_1\" class=\"form-input\">\n          <input type=\"text\" class=\"form-textbox validate[required, Email]\" id=\"input_1\" name=\"q1_email\" size=\"20\" maxlength=\"100\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_19\">\n        <label class=\"form-label-left\" id=\"label_19\" for=\"input_19\">\n          Mailing Address:<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_19\" class=\"form-input\">\n          <input type=\"text\" class=\"form-textbox validate[required]\" id=\"input_19\" name=\"q19_mailingAddress\" size=\"20\" maxlength=\"100\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_2\">\n        <label class=\"form-label-left\" id=\"label_2\" for=\"input_2\">\n          Contact Number:<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_2\" class=\"form-input\">\n          <input type=\"text\" class=\"form-textbox validate[required, Numeric]\" id=\"input_2\" name=\"q2_contactNumber\" size=\"20\" maxlength=\"100\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_13\">\n        <label class=\"form-label-left\" id=\"label_13\" for=\"input_13\"> Online Shop URL: <\/label>\n        <div id=\"cid_13\" class=\"form-input\">\n          <input type=\"text\" class=\"form-textbox\" id=\"input_13\" name=\"q13_onlineShop\" size=\"20\" maxlength=\"100\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_6\">\n        <label class=\"form-label-left\" id=\"label_6\" for=\"input_6\">\n          Items You are Selling (please provide more descriptions) :<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_6\" class=\"form-input\">\n          <textarea id=\"input_6\" class=\"form-textarea validate[required]\" name=\"q6_itemsYou\" cols=\"30\" rows=\"5\"><\/textarea>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_26\">\n        <label class=\"form-label-left\" id=\"label_26\" for=\"input_26\">\n          Please upload sample photos of items that you will be selling<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_26\" class=\"form-input\">\n          <input class=\"form-upload validate[required]\" type=\"file\" id=\"input_26\" name=\"q26_pleaseUpload26\" file-accept=\"pdf, doc, docx, xls, csv, txt, rtf, html, zip, mp3, wma, mpg, flv, avi, jpg, jpeg, png, gif\" file-maxsize=\"500\" \/>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_11\">\n        <label class=\"form-label-left\" id=\"label_11\" for=\"input_11\">\n          Payment Mode<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_11\" class=\"form-input\">\n          <div class=\"form-single-column\"><span class=\"form-radio-item\" style=\"clear:left;\"><input type=\"radio\" class=\"form-radio validate[required]\" id=\"input_11_0\" name=\"q11_paymentMode\" value=\"DBS\/ POSB iBanking (Recommended)\" \/>\n              <label for=\"input_11_0\"> DBS\/ POSB iBanking (Recommended) <\/label><\/span><span class=\"clearfix\"><\/span><span class=\"form-radio-item\" style=\"clear:left;\"><input type=\"radio\" class=\"form-radio validate[required]\" id=\"input_11_1\" name=\"q11_paymentMode\" value=\"ATM  Funds Transfer (Recommended)\" \/>\n              <label for=\"input_11_1\"> ATM Funds Transfer (Recommended) <\/label><\/span><span class=\"clearfix\"><\/span>\n          <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_12\">\n        <div id=\"cid_12\" class=\"form-input-wide\">\n          <div id=\"text_12\" class=\"form-html\">\n            <p>\n              Important Note: Registration is only complete upon payment. Payment must be made within 3 days of registration. Floorplan will be sent to approved, registered and paid tenants immediately after payment. Strictly no selling of food, drinks, contraband and pirated items. No refund unless the event is cancelled by the management.&nbsp;\n            <\/p>\n            <p>\n              <strong>\n                Approved vendors will be notified by email within 5 working days.\n              <\/strong>\n              <br \/>\n              <strong>\n                All applicants must&nbsp;upload sample photos of items selling (if you have difficulties uploading, please email the photos to\n                <a href=\"mailto:calamine.solutions@gmail.com\">calamine.solutions@gmail.com<\/a>\n                ).\n              <\/strong>\n            <\/p>\n          <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_22\">\n        <label class=\"form-label-left\" id=\"label_22\" for=\"input_22\">\n          Agreement:<span class=\"form-required\">*<\/span>\n        <\/label>\n        <div id=\"cid_22\" class=\"form-input\">\n          <div class=\"form-single-column\"><span class=\"form-checkbox-item\" style=\"clear:left;\"><input type=\"checkbox\" class=\"form-checkbox validate[required]\" id=\"input_22_0\" name=\"q22_agreement[]\" value=\"I have read and understood all terms and conditions.\" \/>\n              <label for=\"input_22_0\"> I have read and understood all terms and conditions. <\/label><\/span><span class=\"clearfix\"><\/span>\n          <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"form-line\" id=\"id_7\">\n        <div id=\"cid_7\" class=\"form-input-wide\">\n          <div style=\"margin-left:156px\" class=\"form-buttons-wrapper\">\n            <button id=\"input_7\" type=\"submit\" class=\"form-submit-button\">\n              Register Now!\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=\"90670619113\" \/>\n  <script type=\"text\/javascript\">\n  document.getElementById(\"si\" + \"mple\" + \"_spc\").value = \"90670619113-90670619113\";\n  <\/script>\n<\/form><\/body>\n<\/html>\n");

